ADOで現在のレコードの次のレコードの値も取得するには?
アクセスに対してADOでデータを取得しているのですが
例えばテーブルに
フィールド1
あああ
いいい
ううう
と入ってる時に、1レコード目のあああの値を取得しているときに、同時に次のレコードのいいいの値も取得することは可能ですか?
Sub Sample()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set cn = CurrentProject.Connection
rs.Open "SELECT * FROM テーブル1", cn, adOpenStatic, adLockPessimistic
For i = 1 To rs.RecordCount
MsgBox rs("フィールド1") '現在のレコード
MsgBox rs("フィールド1") + 1 '次のレコード
rs.MoveNext
Next
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
これだとダメなようです。
あああ
いいい
が表示されるようにしたいのですが、どうすればいいか教えてください。
rs.MoveNextなどでカレントレコードを変更しないかぎりは次のレコードの値を取得することはできません。
よくある手法で先読み法というのがあります。
1つ前の値を変数に退避しておく方法です。
Dim Field1 As String
Field1 = rs("フィールド1")
rs.MoveNext
For i = 2 To rs.RecordCount
MsgBox Field1
MsgBox rs("フィールド1")
Field1 = rs("フィールド1")
rs.MoveNext
Next
お礼
ありがとうございます。