Access2010のaccdbをデータベースにC#アプリを作成しようと考え、
サーバーエクスプローラーからaccdbへと接続しようとしたところ、
「'Microsoft.ACE.OLEDB.12.0' プロバイダはローカルのコンピュータに登録されていません。」
というエラーが発生したため、その時の対応メモ。
環境
- Windows7 64bit
- Visual Studio 2010
- Access 2010 64bit
- 接続プロバイダは「Microsoft.ACE.OLEDB.12.0」
対応
2014/6/14 追記
同じようなエラーが出たので改めて調べてみたところ、ビルドのプラットフォームターゲットが「Any」の場合に発生していました。そのため、「x86」に切り替えてビルド・実行したところ、動作するようになりました。参考:
- System.InvalidOperationException: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. - Tips and tricks from a Developer Support perspective. - Site Home - MSDN Blogs
- c# - The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. - Stack Overflow
一応、過去の記録も残しておきます。
2014/6/14 追記 ここまで
Access 2010 64bit を一度アンインストールし、
Access 2010 32bit をインストールしたところ、
上記のエラーメッセージは表示されず、サーバーエクスプローラーからも
accdbへとアクセスすることができた。
ググってみたところでは、はっきりとした原因がわかりませんでしたが、
Visual Studio 2010 は32ビット、Access 2010 は64ビットであったため、
Visual Studio上のサーバーエクスプローラーでエラーが出たのでしょうか。