2

非常に基本的な質問があります。Access vba から使用する com dll を開発しました。私の開発マシンでうまく機能します。テストマシンで私は

"error -2147024894 (80070002) Automation Error
System can't find the specified file"

Access アプリケーションを実行すると msg が表示されます。

デザイン ビューでは、dll が参照され、すべてのオブジェクトとプロパティが vba ide に表示されます。

dll の登録に間違った regasm を使用していないかどうか疑問に思っていますか? VS 2010 を使用して 64 ビット マシンで開発しています。

フレームワーク 3.5 の x86 で実行するように dll をコンパイルします。フレームワーク v2 を使用する必要があります。o.50727 または Framework\v4.0.30319 を使用して dll を登録します。違いが何であるかはわかりません。使用するバージョンは、VS の開発バージョンまたはコンパイルする .NET バージョンによって決まりますか? 1 つは 32 ビット用で、もう 1 つは 64 ビット用ですか?

私はこれに2日間取り組んでおり、ある程度の進歩を遂げましたが、Accessルーチンが実行時にdllのインスタンスを実際に設定することはできません。

ご協力いただきありがとうございます。

4

3 に答える 3

1

v3.5 でコンパイルしている場合は、その regasm を使用する必要があります。ただし、vba アプリで使用できるタイプ ライブラリを生成するには、/tlb スイッチと /codebase スイッチを追加する必要があると思います。次に、.tlb ファイルを参照すると、ゴールデンになるはずです。

于 2012-04-14T22:24:26.990 に答える
0

regsvr32VBA から参照するためにCOM dll を登録する必要があります。

于 2012-04-14T22:25:34.253 に答える
-2

VBA は COM DLL を使用します。.Net フレームワークではなく、C++ を使用する必要があります。

于 2012-04-14T22:11:16.210 に答える