HOME > 即効テクニック > AccessVBA > データ操作 > カレントレコードを次/前のレコードに移動する

即効テクニック

データ操作

カレントレコードを次/前のレコードに移動する

(Access 2000/2002/2003)
●概要●
構文    expression.MoveNext
        expression.MovePrevious

設定項目        内容
expression      Recordsetオブジェクトを指定[省略不可]

RecordsetオブジェクトのMoveNextメソッド、MovePreviousメソッドを使用して、カレントレコードを次のレコード、または前のレコードに移動します。
ここでは、「社員テーブル」をデータソースとしてRecordsetオブジェクトを作成します。DatabaseオブジェクトのOpenRecordsetメソッドを実行するとカレントレコードは最初のレコードに設定されます。Recordsetをオープン後、MoveNextメソッド、MovePreviousメソッドを使用してカレントレコードを移動し、レコード内容をメッセージダイアログで表示します。

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

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