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;" 也不行。
我在另外一台电脑,同样上面的配置。就可以。太奇怪了。
原来是使用 set excelTableRs=excelConn.OpenSchema(20)
能否用sql去查询xls里面是否有什么表。
比如select * FROM OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=YES;Database=F:\sss.xls;')***什么的。
回复次数受限。新建账号
找到问题了。因为AccessDatabaseEngine_X64是64位,用sql2008(也是64位),所以可以使用,但用DTS导入xls时就出现Microsoft.ACE.OLEDB.12.0未找到。因此判定还缺少AccessDatabaseEngine的32位包,安装后故障解除。
在64位系统中,安装了64位office,AccessDatabaseEngine开始必须安装x64,然后再安装AccessDatabaseEngine32位
先安装了64位office,然后再安装AccessDatabaseEngine32位。