Windows10のExcel,Access(64bit)のVBAでDAOエラーの原因と対処法

知人より「64bitのOfficeでエラーが発生する」との連絡を受けて解決したときのメモです。

VBAでDAO(例えばOpenDatabase()など)を実行したときに、「ActiveX コンポーネントはオブジェクトを作成できません」と表示されてお困りの方は、ぜひ参考にしてくださいね!

えいじまん
簡単に解決できました♪

Windows10 VBA(64bit)のDAOエラー詳細

oracleのテーブルを開くためにDAOのOpenDatabase()を実行すると、

「実行時エラー’429′ ActiveX コンポーネントはオブジェクトを作成できません」

と表示されました。

詳しくは、次のコードのOpenDatabase()でエラーが発生します。

Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim Path As String

'ここでエラーが発生↓↓
Set DB = OpenDatabase(Path, , True)

Windows10 VBA(64bit)のDAOエラー原因

実は、64bitのOfficeでは「Microsoft DAO 3.6 Object Library」を使うことができません。

これがエラーの原因ですね。

そしてこのとき、ExcelまたはAccessを起動後に、Alt + F11でVBA実装画面を開き、ツールタブ→参照設定を表示すると、

☑ Microsoft DAO 3.6 Object Library

このように、DAOにチェックが付いています。

64bit環境下では、DAOが使えませんので、このチェックを外して、別のモジュールを使います。

Windows10 VBA(64bit)のDAOエラー対処法

先ほどと同様に、Alt + F11でVBA実装画面を開き、ツールタブ→参照設定を表示します。

DAOのチェックを外して、その代わりに、「Microsoft Office 16.0 Access database engine Object Library」にチェックを付けます。

□ Microsoft DAO 3.6 Object Library
☑ Microsoft Office 16.0 Access database engine Object Library

この状態で、先ほどのコードを実行してみると、、、

Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim Path As String

Set DB = OpenDatabase(Path, , True)

知人
動いた!!(感動

ということで、無事64bit環境でもDAOを動作させることができました。

Windows10 VBA(64bit)のDAOエラーまとめ

VBA(64bit)でDAO(例えばOpenDatabase()など)を実行したときに、「ActiveX コンポーネントはオブジェクトを作成できません」エラーが表示される場合の原因と対処法を紹介しました!

今回のケースでは、以下の通り、参照設定を変更するだけで解決しましたよ。

□ Microsoft DAO 3.6 Object Library
☑ Microsoft Office 16.0 Access database engine Object Library

同じ現象でお困りの方はぜひ参考にしてくださいね!

シェアする

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

フォローする