2010-07-13 62 views
1

我试图从SQL Server 2005数据到Excel从SQL Server 2005数据.. 我已经在Excel VBA中编写的代码试图从Excel宏

下面是我的代码

Dim strConnection, conn, rs, strSQL 

strConnection = "Provider=sqloledb;Data Source=LEON7269-G09\SQLEXPRESS;Initial Catalog=test;User Id=sa;[email protected];" 

Set conn = Server.CreateObject("ADODB.Connection") 
conn.Open strConnection 

Set rs = Server.CreateObject("ADODB.recordset") 
strSQL = "SELECT * FROM UserDetails" 
rs.Open strSQL, conn, 3, 3 

rs.MoveFirst 
While Not rs.EOF 
    Response.Write (rs("myField") & "<br/>") 
rs.MoveNext 
Wend 

rs.Close 
Set rs = Nothing 

conn.Close 
Set conn = Nothing 

但我在行收到错误 设置康恩=的Server.CreateObject( “ADODB.Connection”)

为运行时错误424

我已经尝试添加在VBA引用 - >工具 - >引用 但没有什么工作......请指引我

回答

1

如果这是Excel的VBA,你应该摆脱对服务器的所有引用的,那就是:

CreateObject("ADODB.Connection") 

Server.CreateObject("ADODB.Connection") 

这是行不通的,无论是:

Response.Write (rs("myField") & "<br/>") 
+0

谢谢......现在它的工作正常 – vinod 2010-07-14 09:52:25

0

你提到你已经奠定了引用,那么你应该有这个

Dim conn as Connection 
Dim rst as Recordset 
Set conn = New Connection 
+0

不与CreateObject(“ADODB.Connection”),这是晚期绑定,不需要参考。 – Fionnuala 2010-07-13 13:53:57

+0

应该有一个使用后期绑定的理由。否则,你会错过智能感知;) 我不认为后期绑定是有原因的。 – 2010-07-13 14:09:08

1

其中一个原因使用后期绑定可能是:

后期绑定有你不不必编译代码的优势

在VBA宏使用的情况下,就没有必要设置一个基准,这使得VBA宏更难部署

据说后期绑定执行慢,因为对象的接口后分配到对象,因此expr激情晚期约束。

问候。