『F_入力用(単票フォーム)』で新規入力が行われた場合、明示的に保存操作をさせたく
ダーティー時を使って保存ボタンを作成しました。
ちなみに、なんらかの入力が行われた時は非可視のテキストボックスに「1」が入るようにし
そのテキストボックスに「1」が入っている時はレコードの移動は出来ず、
保存ボタンを押すことによって「1」が消えるという感じに作ってあります。
設計中にその『F_入力用』をダブルクリックで開き試してみたところきちんと稼動してましたが
実際の操作と同様に他のフォームから遷移してくるとなんらかの入力を行っても「1」が
入ってくれません。
いろいろ調べてみると他フォームから遷移されてくるときは、他フォームで入力された情報の一部が
『F_入力用』に表示のみされるようになっており、それが原因でダーティー時が稼動してくれない
ようでした。
(他フォームで入力された情報が表示される『F_入力用』上のテキストボックスを削除してみると
他フォームから遷移されてきてもダーティー時はちゃんと稼動してくれました)
他フォームのリンク元テーブルと『F_入力用』のリンク元テーブルは別のものです。
いろいろ調べてみましたが解決方法がまったくわかりません。
ご存知方がいらっしゃいましたらよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
「ダーティー時(OnDirty)」イベントは、マクロやVBAによる値の代入時には起動
しないので、ご質問の事例には使えないと思います。
現在は
『ダーティ時イベントでテキストボックスに「1」を代入し、レコード移動ボタンを
押したり閉じるボタンを押した際などにそれが「1」なら中止』
としているとのことですが、この「テキストボックスへの記録・参照」の代わりに
『フォームのダーティ(Dirty)プロパティを参照』
とすれば、手入力かマクロ・VBAかによらず、保存済みかどうかを判定できます。
(Dirtyプロパティの値がTrueなら更新中(レコードセレクタが鉛筆マーク相当)、
Falseなら未更新・保存済み(レコードセレクタが横向き▼マーク相当))
※要は、picopico_7さんがテキストボックスに「1」を記録させたのと同様のことを、
Accessが自動でDirtyという枠を使って行ってくれている(しかも手入力か
マクロ・VBAでの代入かに関係なく)、ということです。
VBAで、同フォームから参照する場合の式:
Me.Dirty
マクロの場合、又は別フォームなどから参照する場合の式:
Forms!(フォーム名).Dirty
例えば、VBAで、「新規レコード」ボタンを押したときに上記の確認をする場合は
以下のようなコードになります:
Private Sub 新規レコード_Click()
On Error Goto エラー処理
If Me.Dirty Then 'レコード保存していない場合
MsgBox "先に保存ボタンを押してください", , "確認"
Else 'レコード保存済みの場合
DoCmd.GotoRecord acForm, Me.Name, acNewRec
End If
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " BeforeUpdate"
Resume 終了処理
End Sub
お礼が遅れまして申し訳ありません。
大変勉強になりました。
頂いたアドバイスを使わせていただきます。
分かりづらい質問だったと思うのですが本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Access サブフォームでの選択行の取得
その他(データベース)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
どこにもフォーカスを当てたくない
Access(アクセス)
-
5
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
6
アクセスVBAのMe!と[ ]
Access(アクセス)
-
7
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
8
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
9
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
10
ACCESSでサブフォームの編集中レコードの処理
その他(Microsoft Office)
-
11
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
12
フィルタ後のフォームの件数の取得の仕方
Access(アクセス)
-
13
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
14
Access_Formのデザインビュー画面を拡大表示
Access(アクセス)
-
15
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
16
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
17
Access2010、値を入力したら自動保存の方法
Access(アクセス)
-
18
Accessでレコードを別テーブルへコピーするには
Access(アクセス)
-
19
Accessで、フォームに情報を入力途中で、やめる(レコードに保存しない)ということは出来ますか?
Access(アクセス)
-
20
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードを保存するコード ア...
-
フィルタ後のフォームの件数の...
-
Accessでレコードの保存をせず...
-
アクセスの自動保存解除はでき...
-
ACCESSでフォームを使って、テ...
-
accessのクエリで、該当するデ...
-
Accessで上の行を自動でコピー...
-
access2010 カウントアップマクロ
-
レコードをダブルクリックする...
-
Accessでチェックボックスで抽...
-
アクセスのフォームで立ち上げ...
-
アクセスでフォームビューがみ...
-
Access 更新キャンセルするには?
-
新規レコード行を非表示にしたい
-
Access サブフォームにフィルタ...
-
アクセス帳票フォームのループ...
-
Access:フォームプロパティ「...
-
ACCESS起動時に所定フォームを...
-
AccessVBA RecordSourceのリセ...
-
フォームに更新ボタンを作った...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードを保存するコード ア...
-
ACCESSでフォームを使って、テ...
-
アクセスでフォームビューがみ...
-
新規レコード行を非表示にしたい
-
フィルタ後のフォームの件数の...
-
アクセスの自動保存解除はでき...
-
Accessで上の行を自動でコピー...
-
Accessでレコードの保存をせず...
-
AccessVBA RecordSourceのリセ...
-
ACCESS起動時に所定フォームを...
-
レコード削除時に(サブ)フォー...
-
Access2010、値を入力したら自...
-
Accessで一件の新規レコードの...
-
Accessでフォーム上に 直前の...
-
ACCESSフォームのリストボック...
-
Access サブフォームにフィルタ...
-
Accessで新しいレコードに規定...
-
Accessでのデータ消滅に...
-
Access:フォームプロパティ「...
-
Access レコード移動時イベント...
おすすめ情報