转到连续子表单中的下一条记录跳至父表单中的下一条记录

时间:2018-10-08 19:28:33

标签: vba ms-access access-vba ms-access-2016

我有一个子例程可以转到命令按钮的click事件的下一条记录,该事件已成功用于替换单视图子表单的内置导航按钮,但是当我将其应用于连续表单时,子窗体,父窗体将更改为下一条记录。我想防止用户过滤或搜索,这就是为什么我选择取消导航按钮。当我已经将焦点设置到子表单时,如何防止父表单跳到下一条记录?

Private Sub CmdNextRecord_Click()
On Error Resume Next
    Forms![frmParent]![fsubChild].SetFocus
    DoCmd.GoToRecord , , acNext
    Forms![frmParent].SetFocus
End Sub

1 个答案:

答案 0 :(得分:0)

此行:Forms![frmParent]![fsubChild].SetFocus将焦点设置到主窗体上的子窗体控件,而不是子窗体控件内的实际窗体。

要将焦点设置到子表单中的第一个控件:

Forms!frmParent!fsubChild.Form.Controls(0).SetFocus

我建议您使用表单记录集来代替移动记录:

Dim rs As DAO.Recordset
With  Forms![frmParent]![fsubChild].Form
    Set rs = .RecordsetClone
    rs.Bookmark = .Bookmark
    rs.MoveNext
    If Not rs.EOF Then 'If not last record
        .Bookmark = rs.Bookmark
    End If
End With