• ベストアンサー

Access2000からAccess2003・2007など、上位製品へのバージョンアップについて。

会社でアクセス2000を使用して業務アプリを作ることになりました。(費用の面で、現段階で2002や2007を購入することは出来ません。) しかし、将来的には作成したアプリを2002か2007Ver.へ移行させる予定はあります。 <そこで、ご質問いたします。> 明らかに将来、上位Ver.へ移行すると決まっている場合、開発はなるべくマクロ中心に作成し、VBAの使用は最小限に抑えるべきなのでしょうか? 小耳に挟んだ話だと、アクセスでの上位Ver.への移行は、マイクロソフトが、マクロだと変換ツールを組み込んでいるので、新機能以外はほぼエラーもなく、たいした修正もしないで置き換えられると聞きました。逆に、VBA中心で作成していると、うまく変換されないことが多々あり、かなり修正に手間取るとお聞きしました。 (1)この情報は、正しいのでしょうか?もし、正しいのならそれはなぜなのでしょうか?(マクロもVBAの一種ではないのですか?) (2)今後も、アクセスはバージョンアップするでしょうし、その際の修正の手間が最小限にしたいのなら、変換機機能を最大限に使用できる、マクロ中心に作成しておいたほうが、無難なのでしょうか? 開発は初心者なので、この様な初歩的な質問で申し訳ありませんが、ぜひ、プロの方のご意見をお聞かせください。

質問者が選んだベストアンサー

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.1

>(1)この情報は、正しいのでしょうか? 正しいです。Accessは97/2000/2002の間で細かい変更がしばしばあり、 VBAのコードがそのままでは使えない場合が結構あります。おまけに 「動かない」事実が動かしてみて始めて分かる(それも特殊な条件下 だけとか言う場合が少なくない)ことも多く、移行には必ずシステム テストが必要になります。 2007-VBAはまだ使ったことがありませんが、同じような問題は発生して いるもとの思いますよ。 >(2)変換機機能を最大限に使用できる、マクロ中心に作成しておいたほうが無難 マクロはマクロの状態で存在し、実行する時に逐次VBAのコードに変換 されます(インタプリタとして処理されます)。ですので、同じマクロ でも変換されるコードはAccessのバージョンごとに異なるのです。 マクロのコードはAccess間で互換性がありますが、困ったことにマクロでは 実現できない処理が山ほどあります。逆に言えば、マクロだけで実現できる 処理しかしない・・・というなら、マクロで作ったほうが安心です。

その他の回答 (3)

  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.4

正直言って作り方次第だと思います。 私は基本的にACCESS2000で作っており、ほとんどの処理はVBAでやっています。しかし、データアクセスに関してはADOを使わずにDAOでやっています。基本的にVBAでの参照設定でDAO3.6が参照できるようにしておけば、どのバージョンでも一応問題なく動いています(2007はまだ使っていません)。 どのバージョン(2002,2003)でも基本的にACCESS2000形式として動いています。 ACCESS2000以降は、基本的にはデータアクセスはADOが標準になっていますので、バージョンによってADOの最新ライブラリのバージョンが変わってしまい、ADOを使って処理を作っているとそのせいで問題が発生するかもしれません。私の作っているものはDBとしては主にローカルのJetしか使わないので、DAOの使用で特に困っていません。DAOのライブラリは3.6以降のものは出ていないので、そのせいでACCESSバージョンによる問題は起きていないのではとも思います。 ただExcelへのデータ渡しでExcelのライブラリを使ったりすると、インストールされているExcelのライブラリのバージョンが変わってしまうので、一端上位ACCESS下でで動かしたものを、下位のACCESSの環境下にもってくるとExcelライブラリの参照ができないというエラーが出たりもしますが、下位のバージョンで使っているものを上位で使う限りは、特に問題は起きていません。 いずれにしても作り方次第ではないでしょうか。そうしたトラブルをいろいろ経験することで、どこに気をつけたらいいかもわかってくると思います。

noname#140971
noname#140971
回答No.3

一介のデザイナーですので参考までに・・・。 Access2.0→Access97→Access2000→Access2002 とバージョンアップを図ってきました。 この過程で、 ・マクロは良く判らないので最初から使っていません。 ・クエリも今一つ信頼していないので使っていません。 ・もっぱら、関数群の充実に腐心してきました。 バージョンアップでは、関数の動作をチェックする作業が殆どです。 関数のコードは、その時々で最適化していきます。 が、プログラムコード自体は基本的にいじりません。 こういう仕掛けが宜しいと思います。 <蛇足> Access2000 で業務アプリケーションの開発に今から着手。 ならば、MSDE+Access でクライアント・サーバーシステムがお勧めです。

  • a3453a
  • ベストアンサー率28% (132/460)
回答No.2

変換に苦労したといえば ACCESS97 から ACCESS2000 へ 移行した時に大いに苦労しました いろいろと変更させられてしまいましたが 大きい点はデーターベースドライバー(エンジン)が 大きく変ってしまった点でした DAO方式とかADO方式というやつですね ここを変更されてしまったので (マイクロソウトからすれば機能追加・強化ですが) VBAのデーターベース定義文のところで 少々苦労させられました あと気づいた点とすれば、クェリーでややこしい ことをしていると、新バージョンでは通用しない といったことも体験しました ---------------------------------------------- 結論ですが、 マイクロソフトの場合は新バージョンでは ほとんど旧バージョンの救済措置をとっていますので (むろん、無視されてしまうロジックもありますが) マクロだろうがVBAだろうが、リスクは変らないと 思います たしかにACCESS2000などでも旧様式の変換という 機能を使うと一部エラーになってしまうことは たくさんありますが、VBA部分だけに起きる ということでもありません まぁ、マクロでできることはマクロで マクロでできないことだけはVBAで。。。。。 というスタンスが正解なのではないでしょうか

関連するQ&A

  • ACCESS97から2002へバージョンアップ

    教えてください。 ACCESS97を使用し、VBAのモジュールでシステムを開発しましたが、この度ACCESS2002を導入しました。 2002へバージョンアップを行なうと、モジュールはそののまま移行することは不可能とは聞いていましたが、何とか動かしたいのです。 やはり、モジュールについては、一から作りなおさないと駄目でしょうか? ActiveXコントロールとかで対応できないかとか悩んでいます。 先生方のご教授をお願いいたします。

  • ACCESS2000からACCESS2003へバージョンアップ

    はじめて質問させて頂きます。 Access2000(Win2000)で作成した既存のmdbを、Access2003(WinXP)に変換したいのですが、何か問題があるのでしょうか?※ちなみにVBAは結構書いてあります

  • Accessバージョンアップ97→2003

    Accessバージョンアップ97→2003についてです。 97から2003へ変換後、テストをしています。 そこで、問題が発生しています。 その問題は、テーブル作成クエリが実行できないことです。 mdbのサイズが2Gを超え、変数が無効ですというメッセージが出て しまいます。 変換に伴うコード内の変更箇所はクエリ、マクロから呼ばれる Fanctionの日本語プロシージャです。 どなたか、対処のご存知の方よろしくおねがいします。

  • Officeのバージョンアップ

    初めまして。 今まで会社全体でExcel97やAccess97を使用して業務を行っていたのですが、昨今取引会社からOffice2007形式のデータが送られてくることが増え、Officeのバージョンアップを検討することになりました。 ここで問題なのが、旧式のVBAやマクロ等が2007で正常に動くのか、またVBAやマクロの変更が必要ならどれほどの規模になるのか。 過去に同様な移行をされた方がおられましたらアドバイス頂ければ幸いです。 全部組みなおしだと、製作者:退職、ドキュメント:不明なのでえらい事に・・・・・・

  • Access97をAccess2002にするには

    Access97で作成したmdb(オブジェクトは、テーブル(リンクテーブル有り)、クエリ、フォーム、レポート、マクロ(AutoExecのみ)、モジュールを使用)をAccess2002へ移行させようと思うのですが、単純に[ツール]→[データベースユーティリティ]→[データベースの変換]で良いものでしょうか。 もし、何か気をつけなければならないこと、やらなければならないこと等、または変換方法等をご教授いただけないでしょうか。

  • アクセス97で作成したものは問題なくアクセス2003で動く?

    アクセス97で作成したデータベースは、2003でも動くのでしょうか? 以前、アクセス2000でちょっと立ち上げてみた時に何らかのエラーで動かなかった記憶があります。 マクロやVBAなど一通り作りこんでいます。 変換ツール等あるのでしょうか?

  • Access97からACCESS2000への変更

    Access97でマクロは使わずSQLやVBAというやつで、 会社にいた人がクレーム情報を管理する台帳を作ってくれました。 FREEソフトなんかと連動して、メールを送付するようなこともできるようになっています。 会社でAccess97からAccess2000へ変更することになったのですが、このアプリケーションを開発してくれた人がAccess97のファイルを2000でやたら開くともう2000でしか開けなくなると言っていました。彼が会社をやめてしまって困っています。 どうすればAccess97からAccess2000に移行できるのですか? 単純に97のファイルを2000で開くとどのような不具合が起きるのですか?

  • アクセス マクロはVBAより動作が遅くなりやすい?

    お世話になります。 現在マクロを中心に開発してきました。 処理速度を向上させるため、VBAにしたほうがいいのでは?という意見が社内より出ましたが根拠が不明な為、お伺いします。 1.マクロで開発すると実行速度が遅くなりやすいというようなことはありますでしょうか?単純に比較はできないかもしれませんが。。 2.マクロで開発したものをVBAに変換したら、処理速度が向上するケースがあるとすれば、どのようなケースでしょうか?目安となる判断基準やご経験でも構いませんので、ご存知でしたら教えてください。 以上、宜しくお願い致します。

  • アクセスのレプリカについて

     Windows98上でAccess97で作成されたデータベースを 使用しています。最近、Windows2000上でAccess2000が 導入されて、そちらから共有されているmdbを見ようと するとデータベースの変換のウィンドウが現れて、 OKを押すと 「このレプリカ中のローカルのフォーム、レポート、 マクロ、モジュールは変換されません。これらの オブジェクトを保持するには確実に基のレプリカから デザインマスターにインポートしてください」 と言われます。さらにOKを押すと 「このデータベースはAccess7.0/8.0のデザインマスター /レプリカです。」 と言われてしまいます。レポートがないと印刷できないので 変換するのもためらわれます。どうすればAccess2000でも 使える形でマクロやレポートをAccess97から移行できるのか、 教えていただけませんか?

  • Office97からOffice2003へのバージョンアップについて

    お世話になります。 「Office97」(特にExcel、Access)のVBAで作成したプログラム等を「Office2003」へ移行(バージョンアップ)する事になり、互換性等について心配しています。 移行された経験者がございましたら、移行の手順・方法・テスト・注意点等についてご教授をお願いします。 移行はかなりの本数がございます。