Microsoft Access 掲示板

parent.refreshでレコードとフィールドの位置が先頭になってしまう。 / 11

17 コメント
views
4 フォロー
11

3階層のサブフォーム構成の場合、一番上のフォームでRefreshすると、3番目のサブフォームは再読込されるという仕様のようです。なぜこのような仕様なのか1ユーザーからは伺いすることはできませんが、各リンクテーブルのデータ整合性を保つために必要なことなのかもしれません。どちらにしても、このような内部処理をユーザーから変更するのは難しいかと。

とりあえず、当方のサンプルでは、

Private Sub Form_AfterUpdate()
    Parent.Parent!チェック1 = True
    Parent.Parent!コマンド6.Visible = True
'    Parent.Parent.Refresh
End Sub

というようにRefreshをコメントアウトしておくと、先頭レコードへ移動せずにチェックが入りました。
ただし、テーブルにはすぐには反映せずに、メインフォームへフォーカスを移動するとテーブルに反映されました。

※「チェック1」はチェックボックス名

Accessのローカルテーブルでの確認ですので、SQL Serverだと動作が異なるかもしれません。

通報 ...