• 締切済み

Access_2002_入力・検索フォームで

既存データの変更や新規データの入力を行うフォームがあります。 フォームを閉じる際またはレコードが移動される際、なんらかの入力・修正をした場合のみ「保存しますか?」と言うメッセージを出したいと思っています。 逆に閲覧のみの場合は特にメッセージなくフォームを閉じるようにしたいです。 変更・修正がおこなわれたかどうかのフラグの立て方をご存知の方、 よろしくお願い致しますm(_ _)m

みんなの回答

回答No.2

レコード編集中に、フォームを閉じる、レコード移動、Shift+Enter ・・・等のアクションを起こすと自動的に保存されますが、その前に、「更新前処理」イベントが発生しますのでそこでチェックすればフラグを使う必用はありません。 サンプルコード Private Sub Form_BeforeUpdate(Cancel As Integer) Select Case MsgBox("保存しますか?", vbYesNoCancel) Case vbNo Me.Undo Case Cancel = True End Select Me.種別コード.SetFocus End Sub 仕様 レコードを編集して、レコード保存のアクションを起こすと、 保存しますか? [はい] [いいえ] [キャンセル] と聞いてきます。 [はい]をクリックすると、保存されます。 [いいえ]をクリックすると、編集が破棄されます。 (入力前に戻る) [キャンセル]でアクションが中止されて、編集状態の ままになります。

picopico_7
質問者

お礼

ご丁寧にご回答頂き感謝いたします。 今扱っているDBの場合は他の方に教えていただいたDirtyプロパティーがうまい具合に活用できました。 でもAccess勉強中の私には大変勉強になる処理の仕方を教えて頂けありがたいです。 本当にありがとうございました。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

フォームのDirtyプロパティーを調べれば 変更が行われたかどうかが分かります

picopico_7
質問者

お礼

ご回答ありがとうございました。 プロパティにそのような項目があったのですね。 まだまだ勉強不足です^^; このプロパティを使ってフラグを立てられることによって やりたかったこと以上のことが出来ました。 本当にどうもありがとうございましたm(_ _)m

関連するQ&A