帳票フォームでRequeryした後、レコードを元の位置に戻す

hr16de

2014年07月06日 01:42

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

関連記事