▶ Windows 11情報をお求めの方はこちらをクリック

‘Microsoft.ACE.OLEDB.12.0’プロバイダーがローカルマシンに登録されていません。の原因と対処法

2 min
'Microsoft.ACE.OLEDB.12.0'プロバイダーがローカルマシンに登録されていません。の原因と対処法

Accessをインストールしてるのに、タイトルのエラーが出る・・・なんで?

知人

知人

SEパパ

SEパパ

もしかしたらビルド時のターゲットCPUの設定に問題があるかもしれないね。

アプリ実行時に「’Microsoft.ACE.OLEDB.12.0’プロバイダーがローカルマシンに登録されていません。」と表示されてしまう原因とその対処法を紹介します。

Microsoft.ACE.OLEDBエラーの詳細

    con.ConnectionString =
    "Provider=Microsoft.ACE.OLEDB.12.0; " &
    "Data Source=" & p_fileNm & ";" & 
    "Extended Properties=""Excel 12.0;HDR=YES;IMET=1;"""

    ' コネクションの設定
    cmd.Connection = con

    ' SQL文の設定
    cmd.CommandText = "Select * FROM [" & p_sheetNm & "$] "

    ' SELECTコマンドの設定 
    da.SelectCommand = cmd

    ' データを取得する 
    da.Fill(excelToDt) ←ここでエラー

これは知人から入手したVB.NETのコードです。

最下行で本記事タイトルのエラーが発生していました。

Microsoft.ACE.OLEDBエラーの原因と対処法

Accessをインストールしている場合

ターゲットCPUの設定が合っていない可能性があります。

例えば、Access(x64)をインストールしている場合、ターゲットCPUが(x86)でビルドされたアプリからMicrosoft.ACE.OLEDB.12.0’プロバイダーは使用できません。

Any CPUの場合でも(x86)環境と自動判定された場合は、同様に動作しないため注意が必要です。

このビット数の不一致が原因で、タイトルのエラーが発生する可能性がありますので、ターゲットCPUを設定し直してリビルドしましょう。

Accessをインストールしていない場合

以下をインストールすればエラーを解消できます。

ただしこちらも(x64)と(x86)の2種類があるので要注意です。

  • AccessDatabaseEngine(32bit x86)
  • AccessDatabaseEngine(64bit x64)

Microsoft.ACE.OLEDBエラーまとめ

知人

知人

ターゲットCPUを変更してリビルドしたら動いた!

アプリ実行時に「’Microsoft.ACE.OLEDB.12.0’プロバイダーがローカルマシンに登録されていません。」と表示されるときは、AccessとターゲットCPUのビット数が合っていない可能性があります。

ターゲットCPUの設定を確認してリビルドしましょう!

最後までお読みいただきありがとうございました。

SEパパ

SEパパ

外資系IT企業SE職で2児の父ちゃん!職業柄かリサーチ&問題解決が好き。

幅広いジャンルで「お悩み解決」記事を執筆中。月間最高24万PV。雑誌掲載。

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

カテゴリー:

コメントを残す

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

CAPTCHA