今回はAccessVBAで入力フォームをキャンセルしたにも関わらずテーブルを見ると登録されてしまっている回避策を解説します。
簡単に自己紹介ですが私は会社員15年程経験しその中でAccessVBAを使い沢山の効率化を図ってきました。Accessの資格も取得していますので有益な情報になると思います。
今回の記事の対象者
- AccessVBAでフォームでキャンセルをしたのにテーブルに保存されてしまう解決方法が知りたい方
今回の記事を見た事で得られる事
- AccessVBAで入力フォームをキャンセルしたにも関わらずテーブルを見ると登録されてしまっている回避策がわかる
【コード1】
Private Sub btn_保存せずに閉じる_Click()
If MsgBox("保存せずに終了します。よろしいですか?", vbOKCancel) = vbCancel Then
Exit Sub
Else
End If
Me.Undo
DoCmd.Close acForm, "frm_商品登録", acSaveNo
End Sub
上記コードは商品登録フォームで途中までデータ入力したが途中でキャンセルしたい場合のコードです。
ポイントとしてはMe.Undoの部分です
こちらを記述する事で【なかった事】にしてくれます。
更に下記コードを記述する事でフォームの更新を防ぎます。
【コード2】
Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = True
End Sub
Accessはデータベースの仕様上、入力するだけで勝手に保存されていくのでフォームのA項目を入力した後、B項目に移るだけでA項目に入力されたデータは勝手に保存されます。
なので上記のコードを記述して登録キャンセルを実装して下さい。
今回はAccessVBAで登録キャンセルの方法をお伝えしました。


