Microsoft Access 掲示板

開きっぱなしのフォームの更新について

2 コメント
views
4 フォロー

以前別の質問と間違えて同じスレッドに書き込んでしまった質問について、新しいスレッドを立たせていただきます。

診断リストフォームから詳細ボタンを押すと開く、診断カルテフォームにてタイトルフィールド等を変更し、診断カルテフォームを閉じたとき、診断リストフォームのタイトルに変更が反映されません。

診断リストも診断カルテも同じ診断テーブルを元にした診断クエリを元データにしています。

Private Sub btn閉じる_Click
me.refresh
DoCmd.Close acform,"F診断カルテ",acSaveYes
Forms!F診断リスト.refresh
End Sub

上記のコードでもうまくいきませんでした。

F診断カルテで情報を追記し、診断テーブルで情報が追記されていることを確認できている状況で
F診断リストで「me.refresh」を試みても更新ができませんでした。
F診断リストを一回閉じて開きなおすと、更新が反映されています。
閉じて開きなおす、というVBAを実行するべきなのでしょうか…?

リモコン
作成: 2020/10/30 (金) 07:55:42
最終更新: 2020/10/30 (金) 07:57:07
通報 ...
1
hiroton 2020/10/30 (金) 08:37:32 c36bc@f966d

コードはコピペするようにしてください

Forms!F診断リスト.refresh

Forms!F診断リスト.Requery

ではどうですか?

Form.Refresh メソッド (Access)

Requery メソッド (Access)

Requery メソッドは、フォームやコントロールの基になるデータを更新して、最後にレコード ソースに再クエリを行った後に追加または削除されたレコードを反映します。 Refresh メソッドを使うと、カレント レコードセットに加えられた変更だけが表示され、レコード ソースで新しく追加されたレコードや削除されたレコードは表示されません。 Repaint メソッドを使うと、指定したフォームとそのコントロールが再描画されます。

2
リモコン 2020/10/31 (土) 11:22:15 0029a@1c915

うまくいくようになりました。ありがとうございました。
クエリが絡むデータは、requeryを使わないといけないんですね。
ようやくスッキリしました。感謝いたします。