web-dev-qa-db-ja.com

「実行時エラー '429':ActiveXコンポーネントはオブジェクトを作成できません」を解決するにはどうすればよいですか?

私の会社には、クライアントがWindows 7 32ビットにインストールするように要求したCrystal Reports 7を使用するVB6アプリケーションがあります。現在、クライアントのWindows XP 32ビットSP2マシンにインストールされています。DBへの接続は、別のサーバー上のSQL Server 2000インスタンスへのODBC経由で行われます。

Windows 7では、インストールは正常に機能しますが、アプリケーションを開こうとするとエラーが表示されます。

私は次を見ました:

  • Regsvr32を使用してすべてのdllおよびocxファイルを登録するすでに登録されているか、「[name] .dll」が有効であることを確認してくださいDLLまたはOCXファイルを確認してから再試行してください。これに関するこのフォーラムスレッド:http://social.msdn.Microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • 欠落しているdllファイルまたはocxファイルがあるかどうかを確認するために、ProcessMonitorアプリケーションを使用してアプリケーションの開始を監視しました-これは事実ではないようです。
  • このリスト に従ってアプリケーションをレビューしましたが、これらのガイドラインに反するものはないようです。

これに関連するナレッジベースの2つの項目に気付きました

  • http://support.Microsoft.com/kb/281848-アプリケーションにバンドルされているcomdlg32.ocxはバージョン6.0.81.69であり、開発マシン(WinXP 32ビット)のsystem32フォルダーにあるものは6.1.97.82です。しかし、これが問題であれば、確かに現在は動作しませんか?
  • http://support.Microsoft.com/kb/184898-これが問題であることを確認する方法がわからない

最後に、複雑さのために、このアプリケーションのコードを変更することはできません。たとえ私がVB6プログラマーではなくても、ひどくサポートプロジェクトを手に入れた男です!コードの変更が必要な場合は、WinXPモードを使用して調査する必要があります。

Update:XP Mode。That a a Win XP = SP3 VMを使用します。これはWin上で実行されますXP SP2 VM、SP3にこれを引き起こす可能性のある何かがある可能性がありますか?それともXPモード?

12
RLT

ファイルmsrdo20.dllがインストールにありません。

Windows Vista、Windows Server 2008、およびWindows 7上のVisual Basic 6.0のサポートに関する声明 に従って、このファイルはアプリケーションと共に配布する必要があります。

なぜそうでないのかはわかりませんが、私の解決策は、ファイルをマシンのどこかに配置し、コマンドラインでregsvr32を使用して登録することです。例:

regsvr32 c:\windows\system32\msrdo20.dll

理想的な世界では、これを再配布可能パッケージでパッケージ化します。

3
RLT

同じエラーが発生しましたが、C:\ Windows\SysWOW64のregsvr32.exeを使用して解決しました。 x64システムを使用しているため。マシンもx64の場合、ocx/dllもregsvr32 x64バージョンで登録する必要があります

6
unbalanced

このダウンロードにより、VB6 EXEおよびAccess 2016(ACEDAO.DLLを使用)実行時エラー429が修正されました。429には非常に多くの原因があるため、解決に2日間かかりました。

http://www.Microsoft.com/en-ca/download/details.aspx?id=13255

リンクからの引用:「このダウンロードにより、2010 Microsoft Office SystemファイルとMicrosoft Office以外のアプリケーションとの間のデータ転送を容易にするために使用できるコンポーネントのセットがインストールされます」

1
Harvard

VB6 IDE=をインストールすると動作するので、使用しようとしているコンポーネントがインストールされているVB6ランタイムに依存している可能性があります。

VB6ランタイムは、デフォルトではWindowsにインストールされていません。

IDEは、ランタイムを取得する1つの方法です。開発者以外のマシンの場合は、代わりにMicrosoftの「再配布可能な」インストーラパッケージを使用する必要があります。

MicrosoftのVB6ランタイムインストーラーが1つあります。あなたのコンポーネントに適切なバージョンかどうかはわかりません:

http://www.Microsoft.com/downloads/en/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c

0
Leo Davidson