accessvbaで登録キャンセル|【重要2項目解説】

AccessVBA

今回は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で登録キャンセルの方法をお伝えしました。

タイトルとURLをコピーしました