- ベストアンサー
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 ---------------------------- よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ドライバのせいかな? もし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 は含まれていません。
その他の回答 (2)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
なるほど、、 GUIDをレジストリに書いてなかったのですね。。。 面倒でもこまめにGUIDを書いていかないと、毎回手作業でのレジストリ登録が必要になります。
お礼
お礼が遅くなり、申し訳ありませんでした。 何とかできました。ありがとうございました。
インストーラ作ったことがないんで、よくわかりませんが、再配布パッケージにDAOを含めてみてはどうでしょうか? ファイルがあるのに動かない、ということなら、 RegSvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll" でどうでしょう?(^^; (パスは、実際の環境に即して読み替えてください)
お礼
ありがとうございます。 インストーラにはvb5db.dllとdao360.dllは登録されているのですが、ターゲットマシンにはインストールされていないようです。 コピーしてRegSvr32を実行するとできました。 なぜインストールされないのか不明です。
お礼
ありがとうございます。 インストーラの設定でなんとかなりました。