#296 | 1レコードずつ保存確認メッセージを表示する方法 | フォーム、VBA | |
Accessでは、テーブルもクエリもフォームも、レコード移動によって自動的にデータが保存されます。一方、フォームにおいては、フォームの"BeforeUpdate/更新前処理"イベントプロシージャを利用することによって、ユーザーに確認後、レコードをそのまま保存するか更新をキャンセルするかを指定するといったことができます。イベントプロシージャの引数である「Cancel」にプロシージャ内で"True"を代入することによって更新をキャンセルできます。 しかし、"Cancel = True"とするだけでは、引き続き再入力する状態となってしまい、いつまでたってもそのレコードに対する編集を抜け出すことができません。そこで、「Undo」メソッドを実行することによって、そのレコードに対するそれまでのすべての編集をキャンセルし、更新前の状態まで戻します。これはちょうどEscキーを押したのと同じ操作となります。 以下のコードによって、あるレコードに編集を加えると、別のレコードに移動しようとするたびに保存確認のメッセージが表示されるようになります。 Private Sub Form_BeforeUpdate(Cancel As Integer)
Beep If MsgBox("レコードが更新されています! データを保存しますか?", _ vbYesNo + vbQuestion) = vbNo Then Me.Undo Cancel = True End If End Sub |
|||
|
Copyright © T'sWare All rights reserved |