1

2003 年と 2007 年の両方で Microsoft Access データベースを実行すると、どのような影響がありますか?

取り忘れたクラスはありますか?

このプログラムはもともと Office 2003 でビルドされ、2007 年に実行されました。実行されているマシンに 2003 と 2007 の両方がインストールされていると、問題が発生するようです。この問題は、「Microsoft Access 12.0 オブジェクト ライブラリ」(または 2003 年の「Microsoft Access 11.0 オブジェクト ライブラリ」) からの参照から生じているようにも見えます。これを確認するには、VBA 画面の [ツール: 参照] メニューを見てください。

エラーの症状は、基本的にコードが認識されないことです (使用しているプログラミング言語が認識されないのとほぼ同じです)。通常、これに続いて、「イベント プロパティ設定として入力した式のロード時に、次のエラーが発生しました: オブジェクトまたはクラスは一連のイベントをサポートしていません」というボックスが表示されます。ボタンの「On Load」を「On Click」またはテキストボックスの「On Change」に置き換えることもできます。

個人的には、コンピュータが Microsoft Access 11.0/12.0 Object Library の一部を取り込んで、その 2 つを無用な VBA 参照に混ぜているのではないかと疑っています。私の疑いをさらに確認するのは、「Microsoft Access の構成」という 2 つの間を移動するときにポップアップするボックスです。私の疑いをさらに確認するもう 1 つの問題は、最初に開いた方 (たとえば 2007 年) で実行され、次に他では実行されません(2003年の例を継続)

私が修正しなければならなかった他の唯一の問題は、 DoCmd.OpenForm 、、、、、acFormReadOnly (または acReadOnly、その特定の日にマシンがどのように感じているかによって異なります) の最後の部分を変更することでした。ある日、別の日に切り替えてほしい) 個々のテキスト ボックスを単にロックする

なかなかコーディングではないかもしれませんが、コーディングで直せるのではないかと思います。

うまくいけば、誰かが何かを思い付くのに十分です。

4

3 に答える 3

1

Microsoft の公式の立場は、同じ PC に複数のバージョンの Office をインストールすることはサポートされておらず、推奨されていないというものであり、Access 2007 はそれを証明するように設計されているようです!

とはいえ、次のことを行うことで、ほとんどの問題を回避できます。

1 - データベースをバックエンドとフロントエンドに分割します。バック エンド (テーブルとリレーションシップ) をネットワーク フォルダーに配置し、フロント エンド (他のすべてのオブジェクト) のコピーを各ユーザーのデスクトップに配置します。

2 - 別のバージョンの Access でデータベースを開くたびに参照がシャッフルされるのを避けるために、フロント エンドを mde にすることをお勧めします。

3 - 目的のバージョンの Access でフロント エンドを開くためのショートカットを作成して、常にそのバージョンで開かれるようにします。(ショートカットを使用することを忘れないでください!) ショートカットのターゲット:

「Access 12 msaccess.exe へのパス」「db.mdb へのパス」

于 2008-09-16T19:01:59.090 に答える
0

Access 2003 で開発された MS-Acces アプリケーションがあり、Access 2003 と Access 2007 のフル バージョンまたはランタイム バージョンで使用されます (Access 2007 ランタイムは無料なので、大いに活用しています!)。レファレンス管理以外は特に問題ありません。私たちのコードは、コンピューターにインストールされている Office のバージョンを分析し、対応する参照を自動的に更新します (Access だけでなく、Excel、Outlook、Word など: コードは非常にトリッキーですが、非常に興味深いものです!)

私の知る限り、Office 2003/VBA で使用できる主要なオブジェクト、プロパティ、またはメソッドは、Office 2007 では廃止されていません。Office 2003 のコードは、これらの参照の問題が解決されると、Access 2007 で実行されます。Office 2007 でいくつかの新しいオブジェクトが導入されたため、Access 2003 でさらに使用するコードを開発するためにそれを使用することは開発者にはお勧めしません。

しかし、あなたの質問の主で本当の問題は、同じコンピューターで両方のバージョンの Access を実行する必要があるのはなぜですか? これは、アプリを確実にクラッシュさせたい場合に行うことです。あなたの目的がソフトウェアを開発することであるなら、あなたのマシンのためのより良い構成を確実に見つけるべきだと思います!

于 2008-09-16T18:26:28.427 に答える
0

一般に、1 台のコンピューターに複数のバージョンの Access をインストールすることはサポートされておらず、オブジェクト参照で発生する問題が発生します。

データベースが Access 2003 で作成され、.MDE にコンパイルされ、Access 2007 を実行する別の Windows インスタンスに配置されている場合、重大な問題は発生しないはずです (カスタム ツールバーがアドインにスローされるなどの UI の変更を除く)。リボン)。

Access の複数のバージョンでテストするには、各バージョン間で何らかの形式の分離が必要になります。これを実現するために、複数の仮想マシンを使用しています。Office 2007 と IE7 を実行しているプラ​​イマリ Windows VM と、テスト用に Office 2003 と IE6 を搭載した 2 つ目の VM があります。

Access 2003 で Word、Excel、および Outlook 2007 を使用するだけの場合は、最初に Access 2003 を単独でインストールしてから、Office 2007 のカスタム インストールを実行し、Access 2007 の選択を解除できます。

于 2008-09-16T18:26:50.797 に答える