プロが教えるわが家の防犯対策術!

ExcelのマクロからODBCへのデータアクセスを試しましたが、データのアクセスの箇所で、「実行時エラー429 ActiveXコンポーネントはオブジェクトを作成できません。」というエラーが出て、うまくできません。《添付図上》
ExcelはOSはWindowsServer2012、マクロのバージョンは、Microsoft Visual Basic 7.1 になっています。
参照設定は、Microsoft ActiveX Data Objects 2.5 Library にチェックを入れてあります。

その他の情報
1) 同じようなコードで、同一マシン上で、VB6のプログラムからは動作することが確認できています。どこが違うのか分かり兼ねているところです。
2) 別のマシンからは、同じExcelブックを使い、マクロで動作が確認できていますので、このマシン固有の問題があるのではないかと思っています。

その他試みたこと
1) Officeを入れ直すとDLLの登録上の問題がなおることがあるということで、Officeをアンインストールの上入れ直しましたが変わりませんでした。
2) DAO 360.DLLをレジストリに登録しなおしましたが変わりませんでした。《添付図下》

「ExcelマクロからのデータアクセスでV」の質問画像

A 回答 (1件)

こんにちは。


マクロのコードがないのではっきりしませんが、

Microsoft ActiveX Data Objects 2.5 Library
を使っているなら、コードは、ADODB のはずです。

例えば、
Dim cnADO As ADODB.Connection
Set cnADO = New ADODB.Connection

DAOでしたら、
Dim dbDAO As DAO.Database
となると思います。今、ここではDAOは、関係がないはずです。

それに、
Microsoft Visual Basic 7.1
ということですと、プロバイダーは、
cnADO.Provider = "Microsoft.ACE.OLEDB.12.0"
となるはずです。

参照設定は、私は、
Microsoft ActiveX Data Objects 6.1 Library
を使っていますが、OSが、Window 7 以下のバージョンですと、不具合があるそうです。

互換性を持たせるなら、#IF VBA7 (ディレクティブ)で、分岐してもよいかもしれません。

お役に立てたら幸いです。
    • good
    • 0

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