我正在使用vbscript創建一個庫,並使用scriptcontrol對象從vba調用這些例程。我試圖與給定的SQL作爲參數創建一個記錄作爲日常如下Scriptcontrol對象返回記錄集對象
sub GetData(sql, byref retrst)
stADO = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial
Catalog=CCMSProd;Data Source=sv-hfi-ccms;UID=vc;PWD=dw;"
cnconn as adoconnection
Set cnconn = CreateObject("ADODB.Connection")
cnconn.Open stADO
msgbox cnconn.ConnectionString
msgbox cnconn.state
With cnconn
.CommandTimeout = 0
Set retrst = .Execute(sql)
msgbox retrst.recordcount
End With
cnconn.close
end sub
並調用這個程序如下
scr.Run "GetConnection", tempload, rst
但我的記錄回報如無沉綿連接,並記錄在vbscript中創建。
我需要幫助。
感謝您的回覆。這只是一個例子,但不是優化的代碼。我正在做一些研發,看看scriptcontrol對象是否將vbscript的記錄集返回到vba中的調用應用程序。那是我面臨的問題。 ScriptControl對象不會將記錄集返回給調用應用程序 –
實際返回的內容是記錄集對象的內存地址,因此不能返回該記錄集對象的內存地址。內存將在VBS終止時釋放。 VBS可以返回的唯一東西就是退出代碼。你可以在VBA中使用相同的代碼,所以我不知道你爲什麼要調用VBS腳本來完成同樣的工作。您只需添加一個對Microsoft ActiveX Data Objects的引用以在VBA中使用它,在模塊中使用Option Explicit並聲明變量的類型。你的Dim的Dim objRecordSet爲ADODB.Recordset,Dim objADOConnection爲ADODB.Connection。 – thx1138v2