2

古い専用の Microsoft Access アプリケーション ( .mdb) があり、Microsoft Office 2016 の Windows 10 で実行する必要があります。

そのためのフロントエンド ( .mde) にはいくつかの古いコントロールが必要であり、ライブラリ ( link1link2.ocx )を必要とするものに絞り込みましたが、何かを追加するために使用することはできません。Tools->References

データベースの管理者パスワードは、私が持っているものではありません。したがって、ocx コントロールを MS Access にグローバルに追加して、すべての製品に追加する方法があるかどうか疑問に思っていました。

開こうとすると、次のエラーが表示されます。

イベント プロパティの設定として入力した式 On Open により、次のエラーが発生しました: フォームを開く操作がキャンセルされました。

※式がマクロ名、ユーザー定義関数名、[イベントプロシージャ]にならない場合があります。*関数、イベント、またはマクロの評価でエラーが発生した可能性があります。

このエラーは、イベントのロジックの場所を評価できないためにイベントの実行に失敗した場合に発生します。たとえば、フォームの OnOpen プロパティが に設定されている=[Field]場合、このエラーは、イベントの発生時にマクロまたはイベント名が実行されることが予想されるために発生します。

4

1 に答える 1

0

Access MDE は、MDB のコンパイル済みバージョンです。MDE ファイルの VBA プロジェクトは特定のビット数にコンパイルされ、変更できないため、32 ビット Office で作成された MDE/ACCDE は、64 ビット Office で作成された MDE/ACCDE と同様に、64 ビット Office では機能しません。 32 ビット Office では動作しません。

同様に、コントロールや一部のタイプ ライブラリへの参照では、32 ビット Office から 64 ビット Office に変更したかどうかに関係なく、Windows バージョンの変更後に MDE を再作成する必要がある場合があります。

たとえば、Office 2016 は以前のバージョンの Office とは異なるバージョンの VBA を使用するため、以前のバージョンの VBA でコンパイルされた VBA プロジェクトは Office 2016 で実行できません。この記事は Office 2010 に関連していますが、それでも参考になります。

この問題は、Access 2010 SP1 が新しいバージョンの VBE7.dll ファイル (バージョン 7.00.1619) を使用するために発生します。

64 ビット Office を使用している場合、MDE がコモン コントロール ライブラリ (64 ビット Office では使用できない) を指していた可能性がありますが、MDE は 32 ビットにのみ適したタイプ ライブラリにリンクしている可能性もあります。ビットの使用 (たとえば、VB6 を使用して構築されたタイプ ライブラリ)

この問題を徹底的に診断するには、MDE の作成に使用された元の MDB を使用する必要があります。元の MDB から MDE を再作成する必要があるが、問題のある MDE からデータを回収する必要がある場合でも、Access のツールを使用して MDE からデータをインポートできる場合があります。

元の MDB にアクセスできない場合は、ファイルを引き続き使用するために、適切なバージョンの Windows と Office、およびコントロールとライブラリを備えた PC を見つける必要があります。http://www.everythingaccess.com/mdeconversion.asp (提携関係なし)などのサードパーティ サービスに料金を支払うことで、一部のコードを回収できる場合があります。

于 2016-09-05T13:08:39.047 に答える