

Accessで最後の1レコード分のデータ入力を行ってから、レコードの更新をせず、レコードを移動せず、更新ボタンも押さず、いきなりフォームを閉じると、この1レコードが保存されてしまいます。
Me.Undo
DoCmd.GoToRecord , , acNewRec
を読込み解除時のイベントに入れても、しっかり保存されてしまいます。
閉じる時のイベントに入れるとエラーが出て保存されます。
×ボタンで閉じる時、入力途中のレコードを保存せずに閉じるにはどうしたら良いでしょう。
初心者ですので、何か簡単で良い方法がありましたら、ご教授願います。
No.1ベストアンサー
- 回答日時:
Form_BeforeUpdate イベントに MsgBox "BeforeUpdate"
Form_Unload イベントに MsgBox "Unload"
と入れてやってみるとわかると思いますが、
BeforeUpdate → Unload
の順でイベントが発生します。つまり、Unload イベントが起きたときには既に更新済みです。
( ちなみに、Form_Close は Form_Unload の後です。)
BeforeUpdate で Cancel = True としてやれば更新しなくなりますが、これだと、フォームを閉じようとした時以外のときも更新しなくなってしまいます。また、BeforeUpdate の中では、フォームが閉じられようとしているのどうか判定できません。
というわけで、Form_Unload、または Form_Close の中で、登録された新規レコードを削除してやるくらいしかないように思います。
具体的には、
Private mblnNewRecord As Boolean
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.NewRecord Then
mblnNewRecord = True
Else
mblnNewRecord = False
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If mblnNewRecord Then
DoCmd.RunCommand acCmdDeleteRecord
End If
End Sub
という感じです。( Access 2000 では確認しましたが、それ以外のバージョンは未確認です。)
なるほど、Unload イベントが起きたときには既に更新済みなんですね。
登録された新規レコードを削除の方法で試したら出来たので、これで進めようと思います。
分かりやすい説明ありがとうございました。
(初心者なので具体例が助かりました)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessでレコードの保存をせずにフォームを閉じたい
Access(アクセス)
-
Accessで、フォームに情報を入力途中で、やめる(レコードに保存しない)ということは出来ますか?
Access(アクセス)
-
accessの自動更新処理をできないようにするにはどうすれば良いですか?
その他(データベース)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
6
Access2002 フォームを閉じるたびに「このフォームの変更を保存しますか?」と表示される
その他(データベース)
-
7
Access サブフォームでの選択行の取得
その他(データベース)
-
8
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
9
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
10
ACCESSで条件によってフォーム上のフィールドの色を変更
Access(アクセス)
-
11
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
12
Access 「このレコードを保存することはできません」
その他(ソフトウェア)
-
13
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
14
ACCESS VBA でのエラー解決の根拠がわかりません エラー「イベントプロパティに指定した式・・
Access(アクセス)
-
15
アクセスのファイルが勝手に保存されるのはなぜ?
Access(アクセス)
-
16
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
17
access テキストボックスの値取得
Access(アクセス)
-
18
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
19
ACCESS クエリ→フォーム フィルターをかけたデータのみエクスポートしたい
Excel(エクセル)
-
20
どこにもフォーカスを当てたくない
Access(アクセス)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル書込みで一行もしくは...
-
ACCESSで大量の更新を行うと「...
-
DataGridViewの、選択されてい...
-
ACCESS VBA テーブルデータに...
-
マルチレイアウト
-
差し込み印刷のレコード数について
-
ワードの差込印刷で教えて下さ...
-
固有レコード識別子の選択とは
-
レコードセット(ADO.Recordset)...
-
ADO VBA 実行時エラー3021
-
データセットのレコード更新が...
-
Access を×ボタンで閉じ...
-
エラー番号=5 制約を有効にで...
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
レコード長を数えてくれる関数
-
[VBA] ADOの Clone と AddNew
-
カレントレコードが無い事を判...
-
ヘッダレコードとトレーラレコ...
-
[VB6]プログレスバーコントロー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGridViewの、選択されてい...
-
ファイル書込みで一行もしくは...
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
JSPのNULLレコード表示について...
-
差し込み印刷のレコード数について
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
サブフォームに新規レコードを...
-
カレントレコードが無い事を判...
-
ACCESSで大量の更新を行うと「...
-
ワードの差込印刷で教えて下さ...
-
[VBA] ADOの Clone と AddNew
-
サブレンジ分割されたNDB(富士...
-
固有レコード識別子の選択とは
-
データセットのレコード更新が...
-
レコードセット(ADO.Recordset)...
-
ヘッダレコードとトレーラレコ...
-
Access を×ボタンで閉じ...
-
ACCESS VBA テーブルデータに...
おすすめ情報