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

2 min

知人より「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

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

SEパパ

SEパパ

外資系IT企業SE職で2児の父ちゃん!職業柄かリサーチ&問題解決が好き。幅広いジャンルで「お悩み解決」記事を執筆中。月間最高24万PV。雑誌掲載。

読者様に役立つ情報提供を心がけています。

カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA