- ACCESS
- 2021-06-08
ACCESSのフォームにレコード移動のボタンを追加し、前後のレコード移動が出来るようにするときのエラー回避についてです。
例えば、カレントレコードが最終レコードのときに次のレコードへ移動しようとするとエラーが発生します。
それを回避するために基本的には次のように処理します。
Private Sub 次へ_Click() On Error Resume Next DoCmd.GoToRecord , , acNext End Sub
On Error Resume Next
は「エラーが発生した場合、無視して次のコードへ進む」という意味です。
レコード移動のボタンには前述のようにエラーを無視するよう処理を記述しますが、
私はそれ以前に移動可能な場合のみボタンが押せるようにしています。
フォームのレコード移動時イベントに以下を記述します。
If Me.CurrentRecord = Me.Recordset.RecordCount Then 次へ.Enabled = False Else 次へ.Enabled = True End If If Me.CurrentRecord = 1 Then 前へ.Enabled = False Else 前へ.Enabled = True End If
現在表示中のデータが最終レコードであれば「次へ」ボタンを押せないよう無効にし、
先頭レコードであれば「前へ」ボタンを押せないように無効にしています。