ちょっと変わったマニアな作品が集結

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
----------------------------
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (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 は含まれていません。

参考URL:http://www.microsoft.com/downloads/details.aspx? …
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/03/29 17:34

なるほど、、



GUIDをレジストリに書いてなかったのですね。。。

面倒でもこまめにGUIDを書いていかないと、毎回手作業でのレジストリ登録が必要になります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/13 03:54

インストーラ作ったことがないんで、よくわかりませんが、再配布パッケージにDAOを含めてみてはどうでしょうか?


ファイルがあるのに動かない、ということなら、

RegSvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao360.dll"

でどうでしょう?(^^;
(パスは、実際の環境に即して読み替えてください)
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/03/29 17:23

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?

VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、
「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する)
は、VB.NETでは使用できないようです。(相当する定数はない?)

「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、
どうすれば良いでしょうか?

Aベストアンサー

思いっきり、例文に「COM1」と書いてますが、USBに書き換えてくださいね^^;

それとふと思ったのですが
udtReaderWriterModeWithoutEncryption
変数は構造体ですよね?

メンバが
lngPortName
lngBardRate
というのは、型宣言をINTEGERに変換してますよね?

ちょっとばかり不安に思ったので、追記しておきました。

参考URL:http://okweb.jp/kotaeru.php3?q=1257613


人気Q&Aランキング