ユーザーがエラーを起こし、フォーム全体をクリアして最初からやり直したい場合に備えて、次のコードを使用してクリア ボタンを作成できます。
Private Sub btnClear_Click()
If Me.Dirty = True Then
DoCmd.RunCommand acCmdUndo
Exit Sub
End If
End Sub`
before_update イベントの動作がおかしくなることがあるので、通常はプロパティで閉じる (x) ボタンを無効にし、ユーザーが画面上のデータを破棄するかどうかを確認する独自の閉じるボタンを追加します。
Private Sub close_Click()
Dim Answer As Integer
If Me.Dirty = True Then
Dim Response As Integer
' Displays a message box with the yes and no options.
Response = MsgBox(Prompt:="Do you wish to discard data?", Buttons:=vbYesNo)
' If statement to check if the yes button was selected.
If Response = vbYes Then
DoCmd.RunCommand acCmdUndo
DoCmd.Close
Else
Me.Clear.SetFocus
End If
Else
' The no button was selected.
DoCmd.Close
End If
End Sub