gpt4 book ai didi

vba - Access 2007 VBA : how to get/change the current record's position on the screen

转载 作者:行者123 更新时间:2023-12-04 14:44:32 25 4
gpt4 key购买 nike

我有一个显示 40 行的 Access 2007 表单。当我打开它时,我希望当前记录的行显示在显示的 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

最佳答案

我不完全确定这是否就是您所需要的:
a) 直接转到第 5 条记录,使用:DoCmd.GoToRecord acDataForm, Me.Name, acGoTo, 5(Me.Name 仅当代码在表单自己的代码模块中时)
b)您可以使用查询当前位置Me.Recordset.AbsolutePosition奇怪的是,.AbsolutePosition 从 0 开始计数,goto 命令从 1 开始计数。

关于vba - Access 2007 VBA : how to get/change the current record's position on the screen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13076508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com