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

ACE.OLEDB 12连接xls的问题
本帖最后由 noto 于 2013-09-22 18:37:06 编辑
WIN7 X64,SQL2008(不是R2),安装了OFFICE2013 x64
安装了AccessDatabaseEngine_X64。也在IIS里面设置了启用32位应用程序。
在SQL2008链接服务器访问端口可以看到Microsoft.ACE.OLEDB.12.0
用sql可以使用
select * FROM OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=YES;Database=F:\sss.xls;')...[表名$]

但在使用asp链接xls出现问题:
Dim excelConn,excelConnStr
set excelConn=Server.CreateObject("ADODB.Connection")
excelConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\sss.xls;Extended Properties='Excel 12.0;HDR=YES;IMEX=1';"
excelConn.Open excelConnStr

err.Description 提示“未找到提供程序。该程序可能未正确安装。”

用excelConnStr="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=F:\sss.xls;" 也不行。

我在另外一台电脑,同样上面的配置。就可以。太奇怪了。



------解决方案--------------------
这样试试
excelConnStr ="Data Source=F:\sss.xls;Extended Properties='Excel 8.0;HDR=No;imex=1"
------解决方案--------------------
是文件本身的权限问题吗?用acals命令修改xls文件本身的权限给Everyone试试看
------解决方案--------------------
回复次数受限。新建账号

找到问题了。因为AccessDatabaseEngine_X64是64位,用sql2008(也是64位),所以可以使用,但用DTS导入xls时就出现Microsoft.ACE.OLEDB.12.0未找到。因此判定还缺少AccessDatabaseEngine的32位包,安装后故障解除。

在64位系统中,安装了64位office,AccessDatabaseEngine开始必须安装x64,然后再安装AccessDatabaseEngine32位。