• ベストアンサー

VBでAccessのMDBを参照する環境について

VBからAccessのMDBを操作するアプリケーションを作り、Visual Studio Installerでインストーラを作成しました。 そのパッケージをWin98SEをインストールしたてのマシンにMDAC 2.7をインストールし、作ったパッケージからアプリケーションをインストールしたところ、実行時に 実行時エラー '429': ActiveXコンポーネントはオブジェクトを作成できません。 とエラーが出ます。 試しにテーブルを開き、1件目のデータを読み取るだけの簡単なプログラムを作り、対象のマシンで動作させてみても結果は同じです。 MDACのインストールだけではだめなんでしょうか。 作成したアプリケーションは配布したいので、コントロールパネルを変更するなどの手間はかけたくないのです。 アプリケーションのインストールだけで環境ができるのが理想ですが、何か言い方法はないでしょうか。 ちなみにためしで作った簡単なプログラムのコードを記述します。 ---------------------------- Private Sub Form_Load() Dim mydb As DAO.Database Dim rs As Recordset Set mydb = OpenDatabase(".\tellist.mdb") Set rs = mydb.OpenRecordset("SELECT Count_TBL.* FROM Count_TBL") Text1.Text = rs!telno rs.Close mydb.Close End Sub ---------------------------- よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

ドライバのせいかな? もしAccessをその98マシンにインストールしてできたのなら、ドライバのせいだと思います。(もちろん開発環境と同じバージョンのAccessです) 今までADO2.6を使用して、Accessの入っていないPCのMDBをやったことはあります。 DAOではAccessの入っていないPCは、私は未経験です。 ですので、全て推測です。 参考URLより抜粋 概要 MDAC 2.7 SP1 の再配布可能インストーラーは、Microsoft Windows XP SP1 と同じ Data Access コア コンポーネントをインストールします。このリリースには、Microsoft Jet、Microsoft Jet OLE DB Provider、Desktop Database Drivers ODBC Driver、Visual FoxPro ODBC Driver は含まれていません。

参考URL:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9ad000f2-cae7-493d-b0f3-ae36c570ade8&DisplayLang=ja
kmor
質問者

お礼

ありがとうございます。 インストーラの設定でなんとかなりました。

その他の回答 (2)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

なるほど、、 GUIDをレジストリに書いてなかったのですね。。。 面倒でもこまめにGUIDを書いていかないと、毎回手作業でのレジストリ登録が必要になります。

kmor
質問者

お礼

お礼が遅くなり、申し訳ありませんでした。 何とかできました。ありがとうございました。

noname#4564
noname#4564
回答No.1

インストーラ作ったことがないんで、よくわかりませんが、再配布パッケージにDAOを含めてみてはどうでしょうか? ファイルがあるのに動かない、ということなら、 RegSvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" でどうでしょう?(^^; (パスは、実際の環境に即して読み替えてください)

kmor
質問者

お礼

ありがとうございます。 インストーラにはvb5db.dllとdao360.dllは登録されているのですが、ターゲットマシンにはインストールされていないようです。 コピーしてRegSvr32を実行するとできました。 なぜインストールされないのか不明です。

関連するQ&A