EXCEL のオリジナルデータをSQLから直接扱いたい理由があって、Linked Server で手っ取り早くアクセスしようと思ったら、ハマり中。SQL Server 2008 + EXCEL 2007——————————–
EXCEL 2007 フォーマットの場合
EXEC sp_addlinkedserver
@server = N’ExcelDataSource’,
@srvproduct=N’ExcelData’,
@provider=N’Microsoft.ACE.OLEDB.12.0′,
@datasrc=N’E:\Users\uchukamen\Documents\test3.xlsx’,
@provstr=’EXCEL 12.0′ ;
コマンドは正常に完了しました。
SELECT *
FROM ExcelDataSource…Sheet1
GOリンク サーバー “ExcelDataSource” の OLE DB プロバイダ “Microsoft.ACE.OLEDB.12.0” から、メッセージ “エラーを特定できません” が返されました。
メッセージ 7303、レベル 16、状態 1、行 2
リンク サーバー “ExcelDataSource” の OLE DB プロバイダ “Microsoft.ACE.OLEDB.12.0” のデータ ソース オブジェクトを初期化できません。——————————–EXCEL 2000, 2003 フォーマットの場合EXEC sp_addlinkedserver ‘ExcelSource’,
‘Jet 4.0’,
‘Microsoft.Jet.OLEDB.4.0’,
‘E:\Users\uchukamen\Documents\test4.xls’,
NULL,
‘Excel 8.0’
GOコマンドは正常に完了しました。SELECT *
FROM ExcelSource…Sheet1
GOリンク サーバー “ExcelSource” の OLE DB プロバイダ “Microsoft.Jet.OLEDB.4.0” から、メッセージ “エラーを特定できません” が返されました。
メッセージ 7303、レベル 16、状態 1、行 2
リンク サーバー “ExcelSource” の OLE DB プロバイダ “Microsoft.Jet.OLEDB.4.0″ のデータ ソース オブジェクトを初期化できません。——————————–OpenDataSource もだめ。EXEC sp_configure ‘show advanced options’, 1
RECONFIGURE
EXEC sp_configure ‘Ad Hoc Distributed Queries’, 1
RECONFIGURE
この辺の設定はしている。
SELECT *
FROM OpenDataSource( ‘Microsoft.Jet.OLEDB.4.0’,
‘Data Source=”E:\Users\uchukamen\Documents\test4.xls”;
User ID=Admin;Password=;Extended properties=Excel 12.0’)…Sheet1リンク サーバー “(null)” の OLE DB プロバイダ “Microsoft.Jet.OLEDB.4.0” から、メッセージ “エラーを特定できません” が返されました。
メッセージ 7303、レベル 16、状態 1、行 2
リンク サーバー “(null)” の OLE DB プロバイダ “Microsoft.Jet.OLEDB.4.0” のデータ ソース オブジェクトを初期化できません。——————————–SQL 2005 のときはうまくいったのになぁ・・・http://uchukamen.com/SQL2000/LinkedServer/LinkedServer.htm何か忘れている????