我想查询SQL Server表并将该查询的结果存储在数组中。我只是Distinct()
从一个字段返回a ,因此应该很简单。我的语法产生错误
无效的预选赛
在这行代码中Set r = conn.Execute
,它突出显示了单词“conn
我应该如何重新编写此语法以使其仍然使用ADO
但能够成功运行此过程”?
Public Function ReturnData()
Dim c As ADODB.Connection
Dim r As ADODB.Recordset
Dim f As ADODB.Field
Dim conn As String
Dim arrResults() As Variant
Set c = New ADODB.Connection
With c
.Provider = "sqloledb.1"
With .Properties
.Item("Data Source") = "ServerName"
.Item("Initial Catalog") = "Database"
.Item("PassWord") = "password"
.Item("User ID") = "user"
End With
.Open
Set r = conn.Execute("SELECT Distinct(Name) from registered where cancelled IS NULL;")
i = 0
r.MoveFirst
Do Until rst.EOF
arrResults(i) = rst.Fields(0)
i = i + 1
Loop
rst.Close
Set rst = Nothing
c.Close
End Function
你有conn是一个字符串,c是一个连接-你可以做c.execute
尝试
Set r = c.Execute(...
我不确定是否需要命令对象,如果需要,请参阅
https://msdn.microsoft.com/zh-CN/library/ms675065%28v=vs.85%29.aspx
了解如何为连接创建命令并执行该命令
无论如何,此刻,您正在尝试对字符串“执行”-字符串是原始类型,不能在数据库上执行-我认为您只是将c和conn混合使用-请让我们知道它的运行方式
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句