Я хочу запросить таблицу SQL Server и сохранить результаты этого запроса в массиве. Я только возвращаю Distinct()
из одного поля, поэтому он должен быть довольно прямым. Мой синтаксис дает ошибкуЗапрос таблицы SQL и сохранение результатов в массиве
Invalid Qualifier
На этой строке кода 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
у вас есть соппы это строка есть, с есть соединение - вы можете сделать c.execute – Cato
Есть несколько проблем с этим кодом. Вы копировали/вставляли это из Интернета? Есть несколько случаев, когда вы вызываете переменную 'rst'. Но это не определено. Подозреваю, что вы должны заменить на 'r'. Там два с утверждениями. Но только 1 'End With'. Переменная i не объявлена. 'Dim i AS Integer' для исправления. –