Access 2010 で動的パススルー クエリを使用して、バックエンド データベースから 1 つまたは複数のレコードを取得しています。試行錯誤の末、正しいコードを盗用して、適切なレコードを取得し、OnLoad イベント中にデータシート フォームのバインドされていないテキスト ボックスに割り当てました。残っている唯一の問題は、複数のレコードを表示することです。複数のレコードを取得していることを確認しましたが、各レコードのフィールドの内容は、フォームのテキスト ボックス コントロールに保存された以前の値を上書きするため、データシートに表示されるレコードは常に 1 つだけになります。 1から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
乾杯!
DUHdley