Я использую динамический сквозной запрос в Access 2010 для извлечения одной или нескольких записей из серверной базы данных. После долгих проб и ошибок я скопировал достаточно правильного кода, чтобы получить соответствующие записи и назначить их несвязанным текстовым полям в моей форме таблицы данных во время события OnLoad. Единственная оставшаяся проблема заключается в отображении нескольких записей. Я проверил, что я получаю несколько записей, но содержимое полей каждой записи перезаписывает предыдущие значения, сохраненные в элементах управления текстовым полем формы, поэтому я всегда получаю только одну запись, отображаемую в моей таблице данных, когда я ожидаю увидеть где-нибудь из один к 10.
Я уверен, что это простое решение. Может ли кто-нибудь указать мне на это?
Private Sub Form_Load()
Dim sqlString As String
sqlString = "SELECT Transmitter_ID, Receiver_ID, UTC_Date, Local_Date from Detections"
If Not IsNull(Me.OpenArgs) Then
sqlString = sqlString & " where " & OpenArgs
End If
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As ADODB.Recordset
'Define and open connection
cnn.ConnectionString = "DRIVER={SQLite3 ODBC Driver};Database=z:\EWAMP\EWAMP_be_dev.sqlite"
cnn.Open
'Define ADO command
cmd.ActiveConnection = cnn
cmd.CommandText = sqlString
'Populate and enumerate through recordset
Set rst = cmd.Execute
If rst.EOF Then
MsgBox "Nothing found...", vbInformation + vbOKOnly
Exit Sub
Else
Do While Not rst.EOF
'// I'm guessing the problem is with my control assignments, here.
Me.cntl_Receiver_ID.Value = rst("Receiver_ID")
Me.cntl_Transmitter_ID.Value = rst("Transmitter_ID")
Me.cntl_UTC_Date.Value = rst("UTC_Date")
Me.cntl_Local_Date.Value = rst("Local_Date")
Debug.Print {Show me the four control values}
rst.MoveNext
Loop
End If
End Sub
Ваше здоровье!
ДУХдли