2016-09-29 4 views
3

Excelシート(2013 - 32ビット)にアクセスするためのクエリを作成し、それをSQL Server 2014 SP2 64ビットのテーブルとして表示します。そして、私はこのエラーを受け取ります:SQL Server Microsoft.ACE.OLEDB.15.0

The OLE DB provider "Microsoft.ACE.OLEDB.15.0" has not been registered.

私はAccess Runtime 2013と2010をインストールしようとしましたが、同じ問題が引き続き発生します。使用するクエリは次のとおりです。

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.15.0', 
         'Excel 15.0;HDR=YES;Database=C:\SheetName.xlsx', 
         'SELECT * FROM [PayerList$]') 
+0

64ビットプロセスから32ビットドライバを使用することはできません。 –

+0

@Panagiotisしたがって、64ビットのOffice Excelをインストールする必要がありますか? –

+0

SQL ServerインスタンスがExcelと同じマシンで実行されていますか? 'C:\ SheetName.xlsx'はそのマシンですか? – Brad

答えて

4

Microsoft.ACE.OLEDB.15.0は、Access 2013 Runtimeと共にインストールされるOLEDBドライバの識別子です。 Excelにはインストールされません。実際には、Excelをインストールする必要はありません。ランタイムが見つかりますhere

正しいランタイムバージョンをダウンロードしてください。 64ビットプロセスは32ビットプロバイダを使用できず、その逆もありません。あなたの場合、64ビット版をダウンロードする必要があります。

Excelが使用されていないため、サーバーからExcelを削除する必要があります。

+1

したがって、サーバーまたはローカルマシンにランタイムをインストールしますか?ローカルにインストールしようとすると、32ビットのOffice製品が既にインストールされているというエラーが表示されます。私は2つのオプションを考えています 1 - サーバーにランタイムをインストールすると便利です。 2 - ローカルにある32ビットのオフィス製品をアンインストールし、64ビット版をインストールします。次に、64ビットランタイムをインストールしてみてください。 –

0

私は同様の問題に直面していました。私は、プログラムのプロパティをVisual StudioのCompile> Target CPUからx86から​​x64(または任意のCPU)に変更しました。これは私のために働いた。私のマシンは64ビットで、プログラムはx86用に書かれています。

関連する問題