HOME > 即効テクニック > AccessVBA > データ操作 > レコードを移動する

即効テクニック

データ操作

レコードを移動する

(Access 2000/2002/2003)
●概要●
構文  expression.GoToRecord(ObjectType, ObjectName, Record, Offset)

設定項目		内容
expression	DoCmdオブジェクト[省略不可]
ObjectType	オブジェクトの種類をAcDataObjectTypeクラスの定数で指定
		[省略可能]
ObjectName	オブジェクト名を文字列式で指定[省略可能]
Record		カレントレコードにするレコードをAcRecordクラスの定数で指定	
		[省略可能]
Offset		移動先のレコードを数式で指定[省略可能]

カレントフォームでレコードを移動する場合は、引数の指定は不要です。引数の数値の意味は、引数で指定した値によって異なります。にacNextかacPreviousを指定した場合は、移動するレコード数になります。acGoToを指定した場合は、移動先のレコード番号になります。省略した場合は、「1」が指定されたことになります。また、acFirst、acLast、acNewRecを指定した場合、引数は無視されます。
引数に指定する定数は下記を参照してください。

・引数に指定する定数(acDataObjectTypeクラス)

定数			説明
acActiveDataObject		アクティブオブジェクト(既定値)
acDataForm		フォーム
acDataFunction		関数
acDataQuery		クエリ
acDataServerView		サーバービュー
acDataStoredProcedure	ストアド プロシージャ
acDataTable		テーブル

・引数に指定する定数(acRecordクラス)

定数		説明
acFirst		先頭のレコード
acGoTo		移動先指定
acLast		最後のレコード
acNewRec		新しいレコード
acNext		次のレコード(既定値)
acPrevious	前のレコード

次のコードは、レコードを移動するためのコマンドボタンの機能を作成したものです。

●サンプル1●
'先頭のレコードに移動する

Private Sub cmd先頭_Click()
On Error GoTo ErrHandler
  '先頭のレコードに移動
    DoCmd.GoToRecord , , acFirst 
    Exit Sub
'エラー処理
ErrHandler:
    MsgBox "移動できません"
End Sub

●サンプル2●
'前のレコードに移動する

Private Sub cmd前_Click()
On Error GoTo ErrHandler
  '前のレコードに移動
    DoCmd.GoToRecord , , acPrevious
    Exit Sub
'エラー処理
ErrHandler:
    MsgBox "移動できません"
End Sub

●サンプル3●
'指定した番号のレコードに移動する

Private Sub cmdジャンプ_Click()
On Error GoTo ErrHandler
    '指定したレコード番号のレコードに移動
    DoCmd.GoToRecord , , acGoTo, Me!txtNO
    Exit Sub
'エラー処理
ErrHandler:
    MsgBox "移動できません"
End Sub

●実行結果●
指定されたレコードに移動します。「ジャンプ」を使うときには、テキストボックスに表示したいレコード番号を入力します。なお、このコードでは、移動先を指定してレコードを移動する場合以外、テキストボックスへの入力は無視されます。移動ができない場合は、メッセージボックスに「移動できません」と表示されます。