Access登録ボタンをクリックされたときのみレコードを保存する方法について

前提

Accessで車両を管理するシステムを作成しています。
今回テーブルの結合でフォームを作成しました。
作り方は、フォームウィザード→サブフォームがあるフォーム→表形式で作成しました。
ここで入力する内容はサブフォームのみで、車両の運転記録の実績を入力します。
メインフォームは値を参照するためのもので入力はしません。
サブフォームに戻るボタン、登録ボタン、閉じるボタンを作成しました。
このフォームにマクロを設定し登録前に閉じるボタンをクリックすると、「保存しますか?」とメッセージがでるように設定したのですが、表示されずそのままウィンドウが閉じてしまいます。保存ボタンをクリックした場合のみレコードを登録できるようにしたいです。
サブフォームなしのフォームで同じように設定したところうまくできましたが、今回のようにサブフォームありのフォームはできないのでしょうか。
アドバイスをいただきたいのでよろしくお願いします。
設定内容は以下の通りになります。

フォーム名:F_運転日報入力
サブフォーム名:F_運転日報入力のサブフォーム

フォームの設定
「読み込み時」
レコードの移動 F_運転日報入力
一時変数の設定 名前:onSave 式:False

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

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

ボタンの設定
「戻る」
If [Dirty]=True Then
メニューコマンドの実行 コマンド レコードを元に戻す
If文の最後

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

「閉じる」
エラー時 移動先 次 マクロ名
メニューコマンドの実行 コマンド レコードの保存
If [MacroError]=0
ウィンドウを閉じる オブジェクトの種類 フォーム オブジェクト名 フォーム名入力 オブジェクトの保存 確認

作業手順としては以下の通りになります。
①サブフォームで運転記録の実績を入力
②登録ボタンをクリックしレコードの登録
③閉じるボタンをクリックしウィンドウを閉じる

実現したいこと

登録前に「閉じる」ボタンをクリックしてウィンドウを閉じようとすると「保存しますか?」と表示されるようにしたい。

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

エラーメッセージは特に表示されません

該当のソースコード

試したこと

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

コメントを投稿

0 コメント