VB6.0でデータコントロールを使用したアプリケーションをインストールするには?


しんいち  2007-01-17 04:08:16  No: 97665

VB6.0でデータコントロールを使用したアプリケーションを作って、別のPCにインストールしたところ、「クラスは登録されていません。CLSID {00000010-0000-0010-8000-00AA006D2EA4}のオブジェクトを参照してください」
とエラーになりました。Microsoft DAO 3.5 Object Libraryが登録されていないのが判り、登録しました。そこで、アプリケーションを起動すると異常終了してしまいます。ACCESS2000をインストールし、アンインストールすると現象が
回避される為、コンポーネントの一部が欠落しているのだと思うのですが、何が
原因かがさっぱりわかりません。
どなたかご存知の方がいらっしゃいましたら教えてください。
OSはWinXPSP2です。


もげ  2007-01-17 17:40:41  No: 97666

>Microsoft DAO 3.5 Object Libraryが登録されていないのが判り、登録しました。
というのは、
http://support.microsoft.com/kb/410197/ja
の手順どおり、配布イメージを再作成して配布しなおしたということでしょうか?
それとも、単にDAO350.dllだけをregsvr32で登録したのでしょうか?

後者であれば、まずは、
http://support.microsoft.com/kb/410197/ja

前者であれば、
http://support.microsoft.com/kb/240377/JA/
http://support.microsoft.com/kb/245524/ja

あとディストリビューションウィザードで
Setup.lstの内容を確認してください。
> コンポーネントの一部が欠落しているのだと思うのですが、
について、何か判るかもしれません。


しんいち  2007-01-17 19:59:06  No: 97667

もげ様ありがとうございます。
>>Microsoft DAO 3.5 Object Libraryが登録されていないのが判り、登録しま>した。
>というのは、
>http://support.microsoft.com/kb/410197/ja
>の手順どおり、配布イメージを再作成して配布しなおしたということでしょ>>うか?
>それとも、単にDAO350.dllだけをregsvr32で登録したのでしょうか?

前者・後者共に試してみました。
Microsoftのサポート情報も確認済みです。

>あとディストリビューションウィザードで
>Setup.lstの内容を確認してください。

確認しましたが、何が欠落しているかがわからない状態です。
Setup.lstを乗せておきますのでお気づきの点があれば教えてください。
[Bootstrap Files]
File1=@MSVCRT40.DLL,$(WinSysPathSysFile),,,6/1/99 12:00:00 AM,326656,4.22.0.0
File2=@VB6STKIT.DLL,$(WinSysPathSysFile),,,7/15/00 12:00:00 AM,101888,6.0.84.50
File3=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98 12:00:00 AM,22288,4.71.1460.1
File4=@VB6JP.DLL,$(WinSysPath),,$(Shared),10/2/00 12:00:00 AM,102160,6.0.89.88
File5=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00 AM,17920,2.40.4275.1
File6=@ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00 AM,147728,2.40.4275.1
File7=@OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99 12:00:00 AM,164112,5.0.4275.1
File8=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00 12:00:00 AM,598288,2.40.4275.1
File9=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/5/04 9:00:00 PM,1392671,6.0.96.90

[IconGroups]
Group0=SMNTS010
PrivateGroup0=-1
Parent0=$(Programs)

[SMNTS010]
Icon1="SMNTS010.exe"
Title1=SMNTS010
StartIn1=$(AppPath)

[Setup]
Title=SMNTS010
DefaultDir=$(ProgramFiles)\SMNTS010
AppExe=SMNTS010.exe
AppToUninstall=SMNTS010.exe

[Setup1 Files]
File1=@MSREPL35.DLL,$(WinSysPathSysFile),,,6/13/00 12:00:00 AM,415504,3.51.2404.0
File2=@MSRD2X35.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/24/98 12:00:00 AM,252176,3.51.623.0
File3=@MSJINT35.DLL,$(WinSysPathSysFile),,,4/24/98 12:00:00 AM,123664,3.51.623.0
File4=@MSJTER35.DLL,$(WinSysPathSysFile),,,4/24/98 12:00:00 AM,24848,3.51.623.0
File5=@expsrv.dll,$(WinSysPathSysFile),,,8/5/04 9:00:00 PM,380957,6.0.72.9589
File6=@vbajet32.dll,$(WinSysPathSysFile),,,8/5/04 9:00:00 PM,30749,6.0.1.9431
File7=@MSJET35.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,6/13/00 12:00:00 AM,1046288,3.51.2723.0
File8=@VB5DB.DLL,$(WinSysPath),,$(Shared),6/18/98 12:00:00 AM,89360,6.0.81.69
File9=@DAO350.DLL,$(MSDAOPath),$(DLLSelfRegister),$(Shared),4/27/98 12:00:00 AM,570128,3.51.1608.0
File10=@msado25.tlb,$(WinSysPath),,$(Shared),8/5/04 9:00:00 PM,81920,2.81.1117.0
File12=@DBGRDJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,28160,1.0.0.126
File13=@DBGRID32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98 12:00:00 AM,525352,5.1.81.4
File14=@SYSINJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,9728,6.0.81.63
File15=@SYSINFO.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98 12:00:00 AM,67376,6.0.81.69
File17=@CMCTLJP.DLL,$(WinSysPath),,$(Shared),5/5/98 12:00:00 AM,89600,6.0.80.22
File18=@COMCTL32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 12:00:00 AM,608448,6.0.81.5
File19=@DATGDJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,25088,6.0.81.63
File20=@STDFTJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,6144,6.0.81.63
File21=@MSSTDFMT.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),7/15/00 12:00:00 AM,118784,6.0.88.4
File22=@MSDATGRD.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),12/6/00 12:00:00 AM,262328,6.0.89.88
File23=@ADODCJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,14336,6.0.81.63
File24=@MSADODC.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 12:00:00 AM,118976,6.0.88.4
File25=@MSCMCJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,124416,6.0.81.63
File26=@MSCOMCTL.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),12/20/02 2:02:44 PM,1077336,6.1.95.45
File27=@CMDLGJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,28160,6.0.81.63
File28=@COMDLG32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 12:00:00 AM,140488,6.0.84.18
File29=@TABCTJP.DLL,$(WinSysPath),,$(Shared),7/6/98 12:00:00 AM,18944,6.0.81.63
File30=@TABCTL32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),12/6/00 12:00:00 AM,209608,6.0.90.43
File31=@msado27.tlb,$(WinSysPath),,$(Shared),8/5/04 9:00:00 PM,81920,2.81.1117.0
File32=@MSBIND.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),7/15/00 12:00:00 AM,77824,6.0.88.62
File33=@msjtes40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/5/04 9:00:00 PM,241693,4.0.8618.0
File34=@msrepl40.dll,$(WinSysPathSysFile),,,8/5/04 9:00:00 PM,552989,4.0.8015.0
File35=@msrd3x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/5/04 9:00:00 PM,315423,4.0.6508.0
File36=@msrd2x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/5/04 9:00:00 PM,421919,4.0.7328.0
File37=@mswdat10.dll,$(WinSysPathSysFile),,,8/5/04 9:00:00 PM,831519,4.0.6508.0
File38=@mswstr10.dll,$(WinSysPathSysFile),,,8/5/04 9:00:00 PM,614429,4.0.8905.0
File39=@msjint40.dll,$(WinSysPathSysFile),,,8/5/04 9:00:00 PM,151583,4.0.8905.0
File40=@msjter40.dll,$(WinSysPathSysFile),,,8/5/04 9:00:00 PM,53279,4.0.6508.0
File41=@msjet40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/5/04 9:00:00 PM,1507356,4.0.8618.0
File42=@dao360.dll,$(MSDAOPath),$(DLLSelfRegister),$(Shared),8/5/04 9:00:00 PM,561179,3.60.8618.0
File43=@SMNTS010.exe,$(AppPath),,,1/15/07 9:25:02 AM,323584,1.0.0.0


しんいち  2007-01-17 20:01:42  No: 97668

書き忘れたので追記しておきます。
[Setup1 Files]のFile11とFile16はまったく関係ないファイルなので
都合により消しています。
よろしくお願いします。


もげ  2007-01-17 22:28:24  No: 97669

データアクセス関連のDLLはMDACとして配布すべき
(ライセンスの問題とDLL Hellの防止)で、
通常、データベースを使用するアプリケーションの配布ファイルには、
mdac_typ.exeが含まれているべきなのですが、それがありません。
Jet3.5とJet4.0をバージョンごっちゃでインストールしているように見えます。
プロジェクトの参照設定も確認してみてください。

実行環境で、
Access2000のインストール/アンインストールのかわりに、
mdac_typ.exeを実行してみて、同様エラーになるかどうかは試せますか?
この場合、mdac_typ.exeは、最低限2種類検証する必要があります。

(1)VB6.0のインストールCD-ROMにあるmdac_typ.exe  (MDAC2.0  Jet3.5を含んでいる)
(2)MDAC2.1〜2.5までのバージョン(Jet4.0を含んでいる)

'(3)mdac_typ.exeの代わりにJet4.0のインストール
http://support.microsoft.com/kb/239114/ja

あと、

>アプリケーションを起動すると異常終了してしまいます。
の詳細を教えてください(具体的に何処でどのようなメッセージか  など)。


しんいち  2007-01-18 06:32:46  No: 97670

>実行環境で、
>Access2000のインストール/アンインストールのかわりに、
>mdac_typ.exeを実行してみて、同様エラーになるかどうかは試せますか?
>この場合、mdac_typ.exeは、最低限2種類検証する必要があります。

>(1)VB6.0のインストールCD-ROMにあるmdac_typ.exe  (MDAC2.0  Jet3.5を含んでいる)
インストールしましたが、同様のエラーがでます。
>(2)MDAC2.1〜2.5までのバージョン(Jet4.0を含んでいる)
既にインストールされているメッセージが出てインストール出来ませんでした。
>(3)mdac_typ.exeの代わりにJet4.0のインストール
WinXPSP2なのでインストール出来ませんでした。

以上終了の詳細は以下の通りです。
イベントIDは1000です。
エラー発生アプリケーション smnts010.exe、バージョン 1.0.0.0、エラー発生モジュール ntdll.dll、バージョン 5.1.2600.2180、エラー発生アドレス 0x00010466
申し訳ございませんが宜しくお願い致します。


しんいち  2007-01-18 06:33:48  No: 97671

以上終了でなく。
異常終了です。
間違えました。
すみません。


もげ  2007-01-18 20:23:07  No: 97672

メッセージを見る限り、
個別に配布したDLLのバージョン不整合で、システムがおかしくなっているような気がします。

mdac_typ.exeが配布ファイルに含まれるよう、
プロジェクトの参照設定を見直してみてください。
例えば、
PCにインストールされているADOのバージョンと参照設定しているADOのバージョンが違うと、mdac_typ.exeが含まれなくなります。

あとは、
http://support.microsoft.com/kb/239114/ja
Windows XP SP2 および Microsoft Jet セキュリティ情報 MS04-014 に含まれているファイル 
のリストにあるファイルを
配布ファイルから外して配布ファイルを再作成し、
セットアップしてみてください。


しんいち  2007-01-19 04:48:50  No: 97673

もげ様いつもありがとうございます。
>mdac_typ.exeが配布ファイルに含まれるよう、
>プロジェクトの参照設定を見直してみてください。

ADO2.7のマシンでSETUPを作成し、MDAC_TYP.exeを含みましたが、
現象が回避できませんでした。

>Windows XP SP2 および Microsoft Jet セキュリティ情報 MS04-014 に含まれているファイル 
>のリストにあるファイルを
>配布ファイルから外して配布ファイルを再作成し、
>セットアップしてみてください。

こちらも試してみましたが、現象が回避できませんでした。

こちらでもいろいろ試しているのですが、どうもうまくいきません。
何か手がありましたら、宜しくお願い致します。


もげ  2007-01-19 18:00:57  No: 97674

Jet3.5とJet4.0を別々にインストールすればOKか?という仮説で  
以下ではどうでしょうか?

(1)MDAC2.0(VB6.0のインストールCD-ROMにあるもの)のmdac_typ.exeを実行環境に適用

(2)配布ファイルの適用
配布ファイルは、「クラスは登録されていません。」が出たものを適用(Jet3.5を含めていないもの)


しんいち  2007-01-19 20:54:09  No: 97675

もげ様いつもありがとうございます。
>Jet3.5とJet4.0を別々にインストールすればOKか?という仮説で  
>以下ではどうでしょうか?

>(1)MDAC2.0(VB6.0のインストールCD-ROMにあるもの)のmdac_typ.exeを実行環境に適用

>(2)配布ファイルの適用
>配布ファイルは、「クラスは登録されていません。」が出たものを適用(Jet3.5を含めていないもの)

これはやってみましたが、現象が回避できませんでした。

また、ソースレベルでエラーが出るかを確認する為、VB6.0を標準でインストールしてみました。
そうするとエラーが出ませんでした。

ACCESS2000とVB6.0で使用しているコンポーネントが入っていないのか、
整合性が取れていないということになると思うのですが、どのファイルかが
判らない為、調べようがありません。
ご存知であればまた教えてください。
宜しくお願い致します。


もげ  2007-01-19 23:30:22  No: 97676

'そろそろ個人的に手詰まりですm(_ _)m

エラー時とVB6.0(Access2000)インストール後の
・DLLのバージョン
・レジストリの状態
を片っ端から調べてみるほうが解決が速いかもしれません。
filemon/regmonあたりを使えば多少は作業が楽になると思います。
http://www.microsoft.com/technet/sysinternals/default.mspx


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加