我从遗留应用程序中获得以下代码,该应用程序当前从服务器上的Excel 2003电子表格中读取,但我需要从我使用Excel 2007的计算机上运行。当我在我的机器上调试时,ADO似乎不是阅读电子表格。
我检查了所有文件路径等和电子表格的位置都很好。我听说你不能再使用jet db引擎用于Excel 2007了吗?有人能证实吗?我需要做些什么才能让它发挥作用?
set obj_conn = Server.CreateObject("ADODB.Connection")
obj_conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Application("str_folder") & "CNS43.xls;" & _
"Extended Properties=""Excel 8.0;"""
set obj_rs_cns43 = Server.CreateObject("ADODB.RecordSet")
obj_rs_cns43.ActiveConnection = obj_conn
obj_rs_cns43.CursorType = 3
obj_rs_cns43.LockType = 2
obj_rs_cns43.Source = "SELECT * FROM [CNS43$]"
obj_rs_cns43.Open
答案 0 :(得分:1)
尝试更改您的连接字符串(source article):
obj_conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Application("str_folder") & "CNS43.xls;" & _
"Extended Properties=""Excel 12.0;"""
答案 1 :(得分:0)
您始终可以使用Excel Automation从Excel中读取。但我认为这是B计划。
此问题的最佳解决方案是Openrowset。不需要ASP,只需要纯SQL。
答案 2 :(得分:0)
我解决了这个问题,我遇到的问题与64位操作系统兼容微软Ace驱动程序有关。要使其进行调试,您必须强制Visual Studio使用32位进行调试,即调试配置管理器。