2010-04-28 96 views
1

我从传统应用程序中获取以下代码,该代码当前从服务器上的Excel 2003电子表格中读取,但我需要从使用Excel 2007的计算机上运行此应用程序。我在我的机器上调试ADO似乎没有阅读电子表格。使用传统ASP和ADO将Excel 2007导入到SQL 2000中

我已检查所有文件路径等,电子表格的位置都很好。我听说你不能再使用Excel 2007的Jet数据库引擎了?有人能证实这一点吗?我需要做些什么来实现这个目标?

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

我解决了这个问题,我有是有关64位操作系统的兼容性与微软王牌车手的问题。为了调试你必须强制Visual Studio使用32位调试配置管理器进行调试。

1

试着改变你的连接字符串像这样(source article):

obj_conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
      "Data Source=" & Application("str_folder") & "CNS43.xls;" & _ 
      "Extended Properties=""Excel 12.0;""" 
+0

我已经尝试过,但它没有工作,这个驱动程序需要安装还是应该自动安装? – jhowe 2010-04-28 13:31:14

+0

我解决了这个问题,我遇到的问题与64位操作系统与microsoft ace驱动程序的兼容性有关。为了调试你必须强制Visual Studio使用32位调试配置管理器进行调试。 – jhowe 2010-05-19 15:22:53

0

您可以随时使用Excel自动化从Excel读取。但我认为这是计划B.

此问题的最佳解决方案将是Openrowset。没有ASP要求,只是纯粹的SQL。

Here's a "Closer to Excel" article

+0

我可以在ASP页面中使用SQL吗? – jhowe 2010-04-29 10:41:06

+0

您可以从ASP访问数据库,可以吗?如果您可以编写查询,那么它就不再是与ASP相关的问题,因为它可以用SQL编写,并且几乎所有的语言都可以访问SQL。 – AlexanderMP 2010-04-29 11:26:14