帳票フォームでRequeryした後、レコードを元の位置に戻す
MDBならMe.Bookmark = rs.Bookmark でいいんだけどなぁ
ADPだから仕方がない
どこかで見つけたけどどこか忘れたのでメモ。
帳票フォームにて
詳細部分の edit ボタンをクリック
編集画面を開く(モーダル)
フォーカスが帰ってきたら帳票フォームを更新(ReQuery)
Requeryするとカレントレコードが先頭に戻ってしまうため、カレントを元の位置に戻す
private sub edit_click()
'主キーを格納する変数
Dim frmID as Long
frmID = Me!ID
'編集フォームを開く
DoCmd.OpenForm "frm_edit", , , , , acDialog
'更新
Me.Requery
'レコードセット
Dim rs As ADODB.Recordset
Set rs = Me.RecordsetClone
'主キーで検索
rs.Find "(ID = " & frmID & ")"
If rs.EOF = False And rs.BOF = False Then
'カレントレコードを移動
DoCmd.GoToRecord , , acGoTo, rs.Bookmark
End If
'レコードセットを破棄
Set rs = Nothing
End Sub
関連記事