ACCESSのフォームでダーティ機能が動かなくなる場合の原因と対処法
ACCESSのフォームを使っててフォームのダーティ機能が動いてない時があるというのに気付いたので対処法を記載します。
ダーティ機能とは
Accessの「Dirty」とは
フォーム上のデータが変更されてるが、まだ保存されていいない状態。
例えばフォーム上のテキストボックスに入力だけして保存されていない状態。
TRUEだと現在のレコードは変更されている状態になります。
環境
windows11
office 365 access 64bit
バージョン 2510 ビルド 16.0.19328.20178
今回発生した原因
VBAで他の画面・モジュールからフォーム内のコントロールの値を数値のみに変更した後、
そのフォーム内のコントロールを手動で変更してもダーティがTRUEにならない。
モジュールから画面に入力する時のソース
[Forms]![frm_a]![テキストボックス1] = “12345”
対処法
VBAでフォームの値を変更した後に下記メソッドのどれかでフォームの更新を行う
・Requery ‘データのソースを再クエリする
・refresh ‘レコードソースのレコードをすぐに更新する
・Recalc ‘すべての計算されたコントロールをすぐに更新する
補足
コントロールに数字のみの値を入力するとテキストボックスでもコンボボックスでもチェックボックスでも発生しました。
まとめ
コンボボックスの値を変更する度にフォームの更新を行う必要があるのでかなり面倒なんですが、
他の対処法が調べても出てこないので対症療法的な形でやってます。
このカテゴリの最新記事
2023.12.20
2024.02.28
2025.04.23
2025.09.05