HOME >> Tips >> Microsoft.NET

「'Microsot.jet.OLEDB.4.0' プロバイダーはローカルのコンピューターに登録されていません。」の代替方法

2017/3/11
文書番号:20715




Windows 10 Pro x64 環境で .NETのプログラムからOleDBプロバイダーを使用してExcel ファイルへアクセスしている部分で以下のようなエラーが発生しました。

==============================================================
System.InvaridOperationException:'Microsot.jet.OLEDB.4.0' プロバイダーはローカルのコンピューターに登録されていません。
==============================================================

クリックで拡大

【対応方法 1】

    .NETアプリケーションをコンパイルする際、「x86」アプリケーションとしてコンパイルします。
  1. プロジェクトのプロパティを開きます。
    「コンパイル」ページを選択し、一番下の「詳細コンパイルオプション」を開きます。

    クリックで拡大
  2. 「ターゲットCPU」の項目で「x86」を選択して「OK」をクリックします。

    クリックで拡大

【対応方法 2】

  1. OleDB の接続文字列を記述している部分で、これまでは「Microsoft.Jet.OLEDB.4.0」と指定していた部分を以下のように書き換えます。
    
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=・・・";
    
    を以下のようにします。
    
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=・・・";
    

    Access 2010 か、「Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント」がインストールされている必要があります。
    インストールされていない場合は Microsoft のサイトからダウンロードできます。

    Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント
    https://www.microsoft.com/ja-jp/download/details.aspx?id=13255