web-dev-qa-db-ja.com

"Microsoft.ACE.OLEDB.12.0"を64ビットのSQL Serverのインプロセスで読み込むことができない

このエラーの解決策が見つかりません:

32ビットOLE DBプロバイダー "Microsoft.ACE.OLEDB.12.0"は、64ビットSQL Serverのインプロセスでロードできません。

ウェブ上にたくさんの投稿を見つけましたが、どれも機能しません。

SQL Server 2014 64ビットおよびOffice 2013を使用しています

エラーを生成するコード:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                         'Excel 12.0 Xml;HDR=YES;Database=C:\SSIS\Table_nm.xlsx', 
                         'SELECT * FROM [Table_nm$]'); 
15
Pablo Gûereca

結局のところ、ここから64ビットのドライバーを入手できます。

https://www.Microsoft.com/en-us/download/details.aspx?id=13255

ダウンロードした後、ダブルクリックしてインストールするのではなく、コマンドプロンプトを使用してインストールします。これは次のようになります。

"C:\Users\rshuell001\Downloads\AccessDatabaseEngine_x64.exe" /passive

'/passive 'は、32ビットバージョンが(32ビットOffice経由で)インストールされている場合にインストールが失敗するのを防ぐため、ここで重要です。

23
asher