- ベストアンサー
アクセスの登録について。(その2)
- アクセスの登録についてについての質問です。
- 登録が自動でされないようにしたい場合、変更したデータを元の状態に戻す方法を教えてください。
- フォームのイベントの中の「更新前処理」というモジュールを使用すると、登録の確認が表示されるようになります。いいえを選択すると登録されません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
取りあえず、登録の確認時にあわせて編集もキャンセルさせるなら Private Sub Form_BeforeUpdate(Cancel As Integer) Dim rts As Integer rts = MsgBox("登録しますか?", vbYesNoCancel) 'いいえ 単に登録をキャンセル 編集中のまま If rts = vbNo Then Cancel = -1 End If 'キャンセル 登録をキャンセルし 編集も解除する If rts = vbCancel Then Cancel = -1 DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 End If End Sub ですかね。 ただし、当方確認したのはAccess2003です 2007とかはメニューが ガラッと(方言?)変わっているのでメニューの操作は動作しないかも そのときは、あまりお勧めしませんが、 DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 の代わりに、 SendKeys "{ESC}" で、直接 ESCキーを送ってください。
その他の回答 (1)
- kurodai2
- ベストアンサー率38% (77/202)
先の回答をしたものです。 >「指定したレコードに移動できません」のコメントがでます。登録し これの意味が良く見えませんが・・ 更新をキャンセルしたら、そのデータは編集中のまま (レコードセレクタに、鉛筆マークがでて変更中の状態) だと思います。 編集している状態で、登録しない>変更を無かった前に戻したい場合 通常、ESCキーを押すと、編集中を解除してもとの 未入力の状態になります。 同然、他のレコードへ移動できます。 編集取り消しのECSキーを押すのまで自動にすることも出来ますが 共通の操作なので、そこまでしなくてもと思います。
お礼
ありがとうございました!!アクセス2003ですので、すぐにうまくいきました。今後もよろしくお願いいたします。