

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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Excel(エクセル) エクセル テーブル機能の不明点 2 2022/04/14 14:10
- Excel(エクセル) beforecloseの中からの抜け出し方 1 2023/08/10 18:01
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
このQ&Aを見た人はこんなQ&Aも見ています
-
Accessでレコードの保存をせずにフォームを閉じたい
Access(アクセス)
-
Accessで、フォームに情報を入力途中で、やめる(レコードに保存しない)ということは出来ますか?
Access(アクセス)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
accessの自動更新処理をできないようにするにはどうすれば良いですか?
その他(データベース)
-
5
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
6
ACCESSで条件によってフォーム上のフィールドの色を変更
Access(アクセス)
-
7
Access2002 フォームを閉じるたびに「このフォームの変更を保存しますか?」と表示される
その他(データベース)
-
8
Access終了時にマクロまたはVBAの実行したい
その他(Microsoft Office)
-
9
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
10
アクセスのファイルが勝手に保存されるのはなぜ?
Access(アクセス)
-
11
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
12
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
13
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
14
Access 「このレコードを保存することはできません」
その他(ソフトウェア)
-
15
Access サブフォームでの選択行の取得
その他(データベース)
-
16
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
17
ACCESS フォームをそのまま印刷について
その他(データベース)
-
18
ACCESS クエリ→フォーム フィルターをかけたデータのみエクスポートしたい
Excel(エクセル)
-
19
ACCESSのサブフォームからメインフォームへの移動
Access(アクセス)
-
20
どこにもフォーカスを当てたくない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iserease のDB2 UDBに対してODB...
-
DataGridViewの、選択されてい...
-
クライアントからのDBアクセス
-
ACCESSで大量の更新を行うと「...
-
VBScript(WSH)でのランダムア...
-
VB.netの戻り値が返ってこない
-
COBOL初心者です。
-
確認ダイアログを出さないでレ...
-
ファイル書込みで一行もしくは...
-
ヘッダレコードとトレーラレコ...
-
Javaで使用するデータベースの...
-
アクセスでレポートの1印刷内...
-
データベースへのinfoの入力
-
JSPのNULLレコード表示について...
-
Access でレコードセレクタが押...
-
VC#において特定レコード番号を...
-
Excel VBA読み込みで文字化けが
-
Access を×ボタンで閉じ...
-
ACCESS VBA テーブルデータに...
-
ワードの差込印刷で教えて下さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGridViewの、選択されてい...
-
カレントレコードが無い事を判...
-
レコードが存在しなかった場合
-
差し込み印刷のレコード数について
-
アクセスでレポートの1印刷内...
-
ADO VBA 実行時エラー3021
-
レコードセット(ADO.Recordset)...
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
-
JSPのNULLレコード表示について...
-
ワードの差込印刷で教えて下さ...
-
固有レコード識別子の選択とは
-
データセットのレコード更新が...
-
DataGridViewの内容をDBに反映...
-
Access でレコードセレクタが押...
-
[VBA] ADOの Clone と AddNew
-
サブフォームに新規レコードを...
-
Access を×ボタンで閉じ...
-
ADODBのRecordset.Deleteのエラ...
-
サブレンジ分割されたNDB(富士...
おすすめ情報