LoginSignup
0
0

More than 1 year has passed since last update.

《VBA|Access》次へボタン:最後になったら最初のレコードに戻る

Posted at

概要

Accessの「分割フォーム」で、フィルタリングしたレコードを順番に確認するような場合があります。
マクロ等で「次へ」ボタンは簡単に設置できますが、最終レコードに到達したあとでもボタンを押すとエラーになってしまいます。
VBAを使ってエラーを回避し、さらに最終レコード到達時には最初のレコードに戻るようにすると使用感がアップします。

前提

前提としてこのような分割フォームを想定しています。
次へボタン01.png

左にフォームビュー、右にデータシートビューがあります。
フォームのヘッダー部分に検索窓があり、フィルタリングしたレコードが右にリスト表示されます。

「次のレコード」をフォームに表示するVBA

Accessのフォーム内でレコード移動するときに「次へ」ボタンを配置してVBAで動かす場合は、このように書くだけです。

DoCmd.GoToRecord , , acNext

次へボタン02.png

VBAのエラー

次へボタン03.png
しかし、これで作ったボタンを押し続けて最後のレコードに達すると「エラー」になってしまいます。

エラー処理&最初に戻る

「次へ」ボタンを押し続けて最後のレコードになったら、自動的に最初のレコードに戻ってくれると良いですよね。

上のコードにエラー処理を組みこんで、そのような処理を実現します。

Private Sub cmd次へ_Click()

    '最後のレコード(エラー)になったらエラーラベルに飛ぶ
    On Error GoTo ErrHandler

        '通常の処理:次のレコードに移動
        DoCmd.GoToRecord , , acNext
        Exit Sub

'エラーラベル(この指標の後にエラー処理を記述)
ErrHandler:
    '最初のレコードに行く
    DoCmd.GoToRecord , , acFirst
 
End Sub

実行

《次のレコード》ボタンを押していくだけでグルグルとレコードを移動し続ける事ができるようになります。
フィルターをかけていればフィルター内だけを移動します。

ちなみに都道府県のデータはこちらのサイトからいただきました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0