2011-02-08 6 views
1

メッセージレベル7、レベル16、状態1、行13 リンクサーバー "(null)"のOLE DBプロバイダ "Microsoft.Jet.OLEDB.4.0"のインスタンスを作成できません。会議でインスタンスを作成できない場合、SQL ServerからExcelをエクスポートするにはどうすればよいですか?

xp_enum_oledb_providersにはMicrosoft.Jet.OLEDB.4.0がありません。

ウィンドウ2008サーバー64ビットと32ビットのオフィスおよびSQL Server 2005

declare @PivotList nvarchar(MAX) 
declare @SQL nvarchar(MAX) 
set @PivotList=(SELECT top(1) 
substring((SELECT distinct (' [' + Company + '],') 
from Temp_Car_Park_Transactions t2 group by Company 
FOR XML PATH('') 
), 2, 1000) as col) 

set @SQL=' select * from (select [serial_no], [Date], Company from Temp_Car_Park_Transactions)t ' 
set @[email protected]+ 'pivot(count(serial_no) for Company in('+substring(@PivotList,1,LEN(@PivotList)-1)+'))pvt ' 
--exec (@SQL) 

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=d:\Applications\Carpark\Excel\Analysis.xls;', 
    'SELECT * FROM [SheetName$]') exec (@SQL) 
+0

このリンクにオフィス2007とACEドライバをインストールします – Jo0o0

+0

http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=enただし、私は同じエラーが発生しました、 私は何をすべきか? – Jo0o0

答えて

0

ジェットは、32ビットモードでのみ使用可能です。 64ビットで実行されているプロセス(SQL Serverなど)では使用できません。 ACEは64ビットの代替品です。

ACEドライバが正しくインストールされている場合は、それらを使用するようにプロバイダセクションを変更してください。

.. OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Data Source=d:\Applications\Carpark\Excel\Analysis.xlsx;Extended Properties=Excel 12.0', 
    'SELECT * FROM [SheetName$]') exec (@SQL) 

この特定のコードブロックは、ファイルがOffice Excel 2007以上の形式(XLSX)で保存されていることを前提としています。

これが役に立ちます。

+0

私はExcel 2007をインストールしましたが、サーバーは64ビットですが、SQLサーバーは32ビットです。最後に、このエクスポートオプションを使用してコードをExcelに書き込むようにします。 – Jo0o0