日期:2014-05-16  浏览次数:20733 次

sql server 2008 r2导入excel 2007报错
OS: WIN7
DB:Sql Server 2008 R2
已经安装了:AccessDatabaseEngine.exe
Sql Server服务是用Local System账户启动的。
用Windows身份验证连接Sql Server

SELECT * FROM 
OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database="D:\test1.xlsm"'
, 'SELECT * FROM [sheet1$]');


结果报错:
消息 7302,级别 16,状态 1,第 1 行
Cannot create an instance of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".


请问是什么原因?谢谢!

------解决方案--------------------
http://www.microsoft.com/downloads/zh-tw/confirmation.aspx?displaylang=zh-tw&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891在服务器安装这个
------解决方案--------------------
你可能要换成简体的,楼上这个是繁体的

http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=23734
------解决方案--------------------
后缀是xlsm吗?
------解决方案--------------------
网上找了一下,试试指定extended properties = EXCEL 12.0 MACRO;HDR=YES
------解决方案--------------------
确认CPU, OS, DB, Office, AccessDatabaseEngine这五者的位数须一致,如都是32位或都是64位的.
------解决方案--------------------
确认一下EXCEL不会开着这个档案吧
------解决方案--------------------
参考这个  http://social.msdn.microsoft.com/forums/zh-CN/c92fdd8f-05a4-416e-b490-5b9b883c7344/excel-sql-server-2005-
------解决方案--------------------
http://social.msdn.microsoft.com/forums/zh-CN/c92fdd8f-05a4-416e-b490-5b9b883c7344/excel-sql-server-2005-
------解决方案--------------------
直接导入导出呢?不用该语句
------解决方案--------------------
要确定协同,数据库,office,驱动的位数须一致