2016-07-12 25 views
1

このエラーに関するその他の質問はすべて確認しており、一致するものはありません。"Microsoft.ACE.OLEDB.12.0 'プロバイダの解決策がローカルコンピュータに登録されていません"

私はVisual Studio Windowsアプリケーションを持っています。 Excelファイルを読み込んで処理します。私のマシンと他のほとんどのマシンで正常に動作しますが、新しいマシン(64ビットWindows 7)マシンではうまく動作しません。私のマシンは64ビットですが、私が開発者であるため、私は非常に豊富なライブラリを参照しています。他の作業用コンピュータはすべて私が考えると32ビットです。

ここで私たちに迷惑を与えている符号化である - それは、私はそれが64ビットマシンの問題だった期待して、新しいAccessランタイムをインストールし、元々のJet 4.0エラーだった -

  Dim m_sConn2 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
      "Data Source=" & OpenFileDialog1.FileName.ToString() & ";" & _ 
      "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"";" 

     Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn2) 

     Try 
      conn1.Open() 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 

私は32ビットアプリケーションがあるため、ACE.OLEDBの64ビットバージョンをインストールすることはできません。そのマシンの「ローカルマシンに登録されていません」エラーが発生します。ターゲットCPUを「x86」に変更すると、その接続にアクセスしてExcelファイルを開くことができますが、システムがlog4net.dllファイルを見つけることができないCrystal Reportsエラーが発生します。これは、ビットアプリケーションはそれにアクセスできません。

1) "any CPU"または64ビットモードでACE.OLEDBを認識できるようにするための参考資料はありますか?

2)64ビットマシンに32ビットバージョンのCrystal Reports Runtimeを混乱させることなくインストールできますか?

+1

Microsoft Access Database Engine 2010を再インストール可能にする必要があります。再配布可能ファイル – ElenaDBA

+0

ありがとうございます。私はそれを試みた。ソリューションがCRRuntimeをアンインストールし、32ビット版をインストールするように見えます。 – PoloHoleSet

答えて

1

私は自分自身の疑問に答えていますが、このcatch-22の状況では、Crystal Reports .NET 64ビットランタイムをアンインストールし、32ビットランタイムをインストールし、アプリケーションをx86すべてがうまくいくように見えます。

関連する問題