Vba 访问子窗体更改焦点在按钮上单击

Vba 访问子窗体更改焦点在按钮上单击,vba,ms-access,subforms,Vba,Ms Access,Subforms,我有一个子表单(连续表单),每行上都有一个按钮,单击该按钮时会过滤该记录上的主表单。单击该按钮时,子窗体上的焦点会跳到子窗体的顶部(即第一条记录)。我怎样才能使焦点保持在记录上 换句话说,我单击record 100旁边的按钮,子窗体上的焦点变为record one(主窗体按预期显示record 100)。我希望子窗体上的焦点保持在记录100上 以下是我使用的VBA代码: Private Sub select_record_button_Click() Me.Parent.Form.Filter

我有一个子表单(连续表单),每行上都有一个按钮,单击该按钮时会过滤该记录上的主表单。单击该按钮时,子窗体上的焦点会跳到子窗体的顶部(即第一条记录)。我怎样才能使焦点保持在记录上

换句话说,我单击record 100旁边的按钮,子窗体上的焦点变为record one(主窗体按预期显示record 100)。我希望子窗体上的焦点保持在记录100上

以下是我使用的VBA代码:

Private Sub select_record_button_Click()
Me.Parent.Form.Filter = "[ID]=" & Me.ID
Me.Parent.Form.FilterOn = True
End Sub
上述代码位于子窗体上按钮的单击事件中

您可以尝试以下方法:

在应用筛选器之前,将子窗体的
.SelTop
属性保留到变量,并在应用筛选器后恢复

它不会将所选记录保留在精确的行中,但它将是子窗体可见区域中的第一条记录

Private Sub select_record_button_Click()
    Dim t As Long
    With Me
        t = .SelTop
        With .Parent.Form
            .Filter = "[ID]=" & Me!ID
            .FilterOn = True
        End With
        .SelTop = t
    End with
End Sub

表格没有链接?主窗体或子窗体中的任何其他事件代码听起来像是复制拆分窗体的功能。你考虑了分裂形式吗?是的,它重新创建了一个分裂形式,但是我有两个子表单。我在尝试使用拆分表单时遇到了问题。