У меня есть БД MySQL на Localhost, с которым я хочу получить доступ из VBA.Выбор запроса выполняется из VBA с использованием объекта ADO.RecordSet не возвращает полный результат
Я установил соединение ODBC с MySQL, и я могу запросить результаты.
В настоящее время таблица MySQL содержит 2 строки данных, которые должны быть возвращены. Но «Элементы» в «Recordset.Fields» сохраняют только последнюю строку.
Мой код выглядит следующим образом
Public Sub Query_()
Dim connection As connection
Set connection = OpenConnection()
' Create a record-set that holds all the tasks
Dim records As ADODB.Recordset
Set records = New ADODB.Recordset
Call records.Open("SELECT pk_Client, PAN_Client FROM client", connection)
Dim result() As String
For Each Item In records.Fields
MsgBox (Item.OriginalValue)
Next
connection.Close
End Sub
Вот OpenConnection UDF:
Private Function OpenConnection() As ADODB.connection
'Read type and location of the database, user login and password
Dim source As String, location As String, user As String, password As String
source = "taskman"
location = "localhost"
user = "root"
password = ""
'Build the connection string depending on the source
Dim connectionString As String
connectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=" & location & ";Database=taskman;UID=" & user & ";PWD=" & password
'Create and open a new connection to the selected source
Set OpenConnection = New ADODB.connection
Call OpenConnection.Open(connectionString)
End Function
Пожалуйста, помогите мне выяснить, почему весь результат запроса не сохраняется.
Благодаря
-Chinmay Kamat
пытаются использовать records.MoveFirst перед цикл – Pundit
я на Это. Будет обновляться. Спасибо –
@Pundit: Спасибо, что указал мне в правильном направлении. Надеюсь, это тоже поможет другим. –