HOME > 即効テクニック > AccessVBA > データ操作 > カレントレコードを指定したレコード数だけ移動する

即効テクニック

データ操作

カレントレコードを指定したレコード数だけ移動する

(Access 2000/2002/2003)
●概要●
構文  expression.Move(Rows, StartBookmark)

設定項目        内容
expression      Recordsetオブジェクトを指定[省略不可]
Rows            移動するレコード数を長整数型(Long)で指定。
                正の場合は前方に移動し、負の場合は後方に移動[省略不可]
StartBookmark   レコードを移動する際の基準となるブックマークを指定
                [省略可能]

RecordsetオブジェクトのMoveメソッドを使用してカレントレコードを移動します。Moveメソッドは、基準となるレコードとそこから何レコード移動するかを指定します。引数を省略すると、カレントレコードを基準レコードとみなして移動することになります。
ここでは、DatabaseオブジェクトのOpenRecordsetメソッドでRecordsetをオープンした後、Moveメソッドで引数に2レコードを指定してカレントレコードを移動します。OpenRecordsetメソッド実行時にはカレントレコードは最初のレコードに設定されるので、Moveメソッドを実行するとカレントレコードは3件目のレコードとなります。

●設定●
動作確認をするためには、Visual Basic Editorのメニューから[ツール]→[参照設定]コマンドを選択し、[参照設定]ダイアログボックスで「Microsoft DAO 3.6 Object Library」にチェックを入れてください。

●サンプル●
Public Sub MoveRecordSample()
    Dim myDB As Database
    Dim myRS As DAO.Recordset
    'カレントデータベースを変数に代入する
    Set myDB = CurrentDb
    '[社員テーブル]をデータソースとしてレコードセットを開く
    Set myRS = myDB.OpenRecordset("社員テーブル", dbOpenTable)
    'カレントレコード(最初のレコード)から2レコード移動する
    myRS.Move (2)
    MsgBox "***3番目のレコード***" & vbCrLf & _
             "社員コード : " & myRS!社員コード & vbCrLf & _
             "部署コード : " & myRS!部署コード & vbCrLf & _
             "名前 : " & myRS!名前 & vbCrLf & _
             "職種 : " & myRS!職種 & vbCrLf & _
             "入社年月日 : " & myRS!入社年月日
    'レコードセットを閉じる
    myRS.Close
End Sub