2

SQLクエリで次のクエリを試しました

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=c:\generalholiday.xls','select * from [sheet1$]')

次のエラーが発生しました。

リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" は、"Microsoft Access データベース エンジンはオブジェクト 'sheet1$' を見つけることができませんでした。オブジェクトが存在すること、およびその名前とスペルが正しいことを確認してください" というメッセージを返しました。パス名が正しくありません。'sheet1$' がローカル オブジェクトでない場合は、ネットワーク接続を確認するか、サーバー管理者に連絡してください。". メッセージ 7350、レベル 16、状態 2、行 1 リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" から列情報を取得できません。

実際、このクエリに基づいて多くの回答を検索しました。しかし、私にとって信頼できる結果は得られませんでした。

今までやってきたこと、

アクセス データベース エンジン 64 ビットをインストールし、次のクエリを実行します。

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 
GO 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 
GO 

それでも上記のエラーが発生します。この解決策を見つけるのに丸一日かかります。

この問題の解決策を教えてください。

SQL Server 2008 (64 ビット) と MS Office 32 ビットを使用しています

4

1 に答える 1