Access2010のaccdbをデータベースにC#アプリを作成しようと考え、サーバーエクスプローラーからaccdbへと接続しようとしたところ、
「'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上のサーバーエクスプローラーでエラーが出たのでしょうか。