私はレコードセットrst
と2列/フィールドID
とValue
を持っています。レコードセットには複数の行があります。デバッグ中に、次のステートメントを使用して、イミディエイトウィンドウのレコードセットの最初の行のレコードを表示できます。即時ウィンドウ内のレコードセットのデータを表示
?rst.fields(0)
?rst.fields(1)
しかし、2行目または100行目のデータは表示できません。
私はレコードセットrst
と2列/フィールドID
とValue
を持っています。レコードセットには複数の行があります。デバッグ中に、次のステートメントを使用して、イミディエイトウィンドウのレコードセットの最初の行のレコードを表示できます。即時ウィンドウ内のレコードセットのデータを表示
?rst.fields(0)
?rst.fields(1)
しかし、2行目または100行目のデータは表示できません。
:以下の単純なループを行う
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbljournaltitles")
Debug.Print rs(0).Name
Debug.Print rs(0)
Debug.Print rs("MyText")
rs.Move 10
Debug.Print rs(0)
rs.Move -4
Debug.Print rs(0)
''Find does not work with all recordset types
rs.FindFirst "MyText Like 'Text*'"
Debug.Print rs(0)
ありがとう、これは非常に役に立ちます。 – Heman
データを取得するには、行を反復処理する必要があります。たとえば、 DAOレコードセットと@nyarlathotepによってコメントを通じて移動について
Do While Not rst.EOF
'Do something with the data
rst.MoveNext
Loop
ありがとうございます。その行に移動する以外の特定の行と列のデータを表示するコマンドがあります。 100行目のデータを表示するには、movenextを100回使用する必要があります。 – Heman
レコードセットを使用しているときに、すべてのデータが必ずしも同時にメモリに格納されているわけではないので、反復する以外の方法はないと思います。しかし、あなたは自分のデータ構造の何らかの種類の行を格納し、後でそのデータ構造を確認することができます – codeling
@ user1075037実際には反復せずにレコードセットを移動することは可能です。私はこの回答の補足を投稿しました。 – Fionnuala
@Fionnuallaと@codeling(から回答を活用し、追加するレコードセットの&クリーンアップを閉じます)、VBA: Debug.Print without newline?からのヘルプを追加して、このように見えるようにします(まだ列の最大サイズの実際の幅にする必要があります)。
この手順では、ドロップしたクエリがすべて表示されます。
Public Sub debugPrintQuery(ByVal myQuery As String)
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset(myQuery)
' print column names
Dim i As Integer
For i = 0 To rs.Fields.Count - 2
Debug.Print rs(i).Name & vbTab; 'print col names separated with a tab one from each other
Next i
Debug.Print rs(rs.Fields.Count - 1).Name 'last one without ; so it adds the newline
Do While Not rs.EOF
For i = 0 To rs.Fields.Count - 2
Debug.Print rs(i) & vbTab; 'print values separated with a tab one from each other
Next i
Debug.Print rs(rs.Fields.Count - 1) 'last one without ; so it adds the newline
rs.MoveNext
Loop
rs.Close 'Close the recordset
Set rs = Nothing 'Clean up
End Sub
DoCmd.OpenQuery "someQueryDef"は、クエリ結果のセットをブラウズするときに、イミディエイトウィンドウから非常に便利であることがわかりました。 – chip