Accessサブフォーム内で設定したマクロが機能しない

前提

Accessでシステム作成をしています。
サブフォーム付きのフォーム上でマクロを設置したのですがうまく機能せずに困っています。
内容としてはフォーム内に画面を閉じるボタン、保存前の状態に戻るボタン、保存ボタンの3つ作成しました。
ボタンの内容は以下の通りです。
「画面を閉じる」ボタン
エラー時:移動先「次」
メニューコマンドの実行:コマンド「レコードの保存」
If:[MacroError]=0 Then
If文の最後
ウィンドウを閉じる:オブジェクトの種類「フォーム」、オブジェクト名「フォーム名」オブジェクトの保存「確認」

「保存前の状態に戻る」ボタン
If:[Dirty]=True Then
メニューコマンドの実行:「レコードの保存」
If文の最後

「保存」ボタン
一時変数の設定:名前「onSave」、式「True」
メニューコマンドの実行:コマンド「レコードの保存」
If:MsgBox("登録完了!",0+64+0,"確認")=6 Then
If文の最後

さらにプロパティシートより下記の設定をしました。

「読み込み時」
レコードの移動:先頭のレコード
一時変数の設定:名前「onSave」式「False」

「更新前処理」
If:[TempVars]![onSave]=False Then
If:MsgBox("保存しますか?",4,"確認")=7
イベントの取り消し
If文の最後
一時変数の設定:名前「onSave」式「False」
If文の最後

「閉じるとき」
一時変数の削除:名前「onSave」

このように設定したのですが、登録ボタンをクリックしていないのにもかかわらず「画面を閉じる」ボタンをクリックするとそのまま画面が閉じてしまいます。別のフォームではうまく使えるのですがサブフォームありだとうまく機能しません。今回の場合はメインフォームは固定情報のためあくまでも参照するために表示させています。入力はサブフォームのみとなります。ボタンの設定が悪いのかプロパティシートの設定が悪いのかわからないためアドバイスください。よろしくお願いします。

実現したいこと

レコード保存前に画面を閉じようとすると「保存しますか?」と確認画面が出るようにしたいです。

発生している問題・エラーメッセージ

エラーメッセージは特に出ていません。

該当のソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

コメントを投稿

0 コメント