40行を表示するAccess2007フォームがあります。それを開くと、表示されている40行のうち、現在のレコードの行が行位置#5に表示されるようにしたいと思います。つまり、現在の行の上に4行、下に35行あるはずです。
MoveUpDownはこれを行うための私の最初のカットですが、現在、現在のレコードの行(FindFirstによって移動された)が最初に行位置#1から#5に表示されている場合にのみ機能します。表示されている行に対する現在の行の表示位置を確認するにはどうすればよいですか?また、それを変更するにはどうすればよいですか?ありがとう。
Private Sub OpenMyFormTo(sqlWhere As String)
Dim rs As DAO.Recordset, frm As Form
DoCmd.Openform "myForm", acNormal
Set frm = Forms("myForm").Form
Set rs = frm.RecordsetClone
If Not (rs.BOF And rs.EOF) Then
rs.MoveFirst
rs.FindFirst sqlWhere
frm.Bookmark = rs.Bookmark
MoveUpDown frm.Recordset, 5
End If
End Sub
Private Sub MoveUpDown(rs As DAO.Recordset, RowsToMove As Integer)
Dim RowsActuallyMoved As Integer, i As Integer
RowsActuallyMoved = 0
For i = 1 To RowsToMove
If Not rs.BOF Then
rs.MovePrevious
RowsActuallyMoved = RowsActuallyMoved + 1
End If
Next i
For i = 1 To RowsActuallyMoved
If Not rs.EOF Then rs.MoveNext
Next i
End Sub