• ベストアンサー

ロールバックとコミットの使い方が分かりません

前も掲載したのですが、また掲載させていただきます。 アクセスのフォームにデータを編集するフォームを作ったのですが、間違って入力したデータを普通に閉じたら容赦なく保存されますよね? 出来ればその現象を無くそうと思ったらコミットとロールバックの機能が使えると友達から聞いたのですが、どうも使い方が分かりません。 メニューのボタンを押すとデータを保存するかどうかメッセージを表示させて、はいを押すとそのデータを保存する作業をする。 いいえを押すと入力したデータを破棄する。 ようにしたいのですが・・・ご教授お願いします。m(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

VBA、判りますでしょうか。 まずは、フォームの更新前処理に、以下のようなコードを書きます。 Private Sub Form_BeforeUpdate(Cancel As Integer)   Dim Msg As String   Msg = "このデータ、更新する?"   Select Case MsgBox(Msg, vbYesNo + vbDefaultButton2, "更新の確認")   Case vbYes     '「はい」の時は更新続行   Case vbNo     Me.Undo     '更新前の状態に戻す。     Cancel = True '更新をキャンセルする   End Select End Sub このままでも十分、仰る機能は達成できているのですが、もし保存ボタンを付けるんであれば、 コマンドボタンをフォームに追加して、ウィザードでレコードの操作-レコードの保存でOKかも。 2回目のメッセージが鬱陶しければ、 MsgBox Err.Description の行を削除しちゃうといいですね。

it_kenta
質問者

お礼

Me.Undoで更新前に戻せるんですね。ありがとうございます。これでうまく作成できます。

関連するQ&A