Microsoft Access 掲示板

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

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

Parent.parent.Refreshを行わないと、すぐにはテーブルに反映しないのが引っかかります。
フォーカスを移動するなど、レコードを保存するタイミングにならないと保存されないと、
それまでの間にAccessがクラッシュやフリーズした際にレコードが保存されないのが問題になりますよね?

これを気にするなら、Parent.parentのチェックボックスは非連結にしておいて、レコードソースのテーブルのフィールドを更新クエリかDAOまたはADOで直接更新するようにすればどうでしょう。

通報 ...
  • 14

    DAOで、フォームのレコードセットのコピーを生成して、それに対して更新する方法でどうだろう。

    Private Sub Form_AfterUpdate()
        With Parent.Parent.Recordset.Clone 'フォームのレコードセットのコピー
            .Bookmark = Me.Bookmark 'カレントレコードを同期
            .Edit
            !chk = True
            .Update
        End With
        Parent.Parent!チェック1 = True
        Parent.Parent!コマンド6.Visible = True
    End Sub
    

    Chk はレコードソースのフィールド名
    Chk1 はチェックボックス名(非連結)

    チェックボックスは非連結なので、親フォームのレコード移動時にフィールド値を代入するなどの処理は別に必要。

    ちょっと今出先なので、サンプルで動作確認してはしていませんので、うまくいくかは不確定。