2010-07-13 67 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激情晚期約束。

問候。