私の会社には、クライアントがWindows 7 32ビットにインストールするように要求したCrystal Reports 7を使用するVB6アプリケーションがあります。現在、クライアントのWindows XP 32ビットSP2マシンにインストールされています。DBへの接続は、別のサーバー上のSQL Server 2000インスタンスへのODBC経由で行われます。
Windows 7では、インストールは正常に機能しますが、アプリケーションを開こうとするとエラーが表示されます。
私は次を見ました:
これに関連するナレッジベースの2つの項目に気付きました
最後に、複雑さのために、このアプリケーションのコードを変更することはできません。たとえ私がVB6プログラマーではなくても、ひどくサポートプロジェクトを手に入れた男です!コードの変更が必要な場合は、WinXPモードを使用して調査する必要があります。
Update:XP Mode。That a a Win XP = SP3 VMを使用します。これはWin上で実行されますXP SP2 VM、SP3にこれを引き起こす可能性のある何かがある可能性がありますか?それともXPモード?
ファイルmsrdo20.dllがインストールにありません。
Windows Vista、Windows Server 2008、およびWindows 7上のVisual Basic 6.0のサポートに関する声明 に従って、このファイルはアプリケーションと共に配布する必要があります。
なぜそうでないのかはわかりませんが、私の解決策は、ファイルをマシンのどこかに配置し、コマンドラインでregsvr32を使用して登録することです。例:
regsvr32 c:\windows\system32\msrdo20.dll
理想的な世界では、これを再配布可能パッケージでパッケージ化します。
同じエラーが発生しましたが、C:\ Windows\SysWOW64のregsvr32.exeを使用して解決しました。 x64システムを使用しているため。マシンもx64の場合、ocx/dllもregsvr32 x64バージョンで登録する必要があります
このダウンロードにより、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以外のアプリケーションとの間のデータ転送を容易にするために使用できるコンポーネントのセットがインストールされます」
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