访问子窗体更改关注按钮单击

时间:2017-09-21 21:10:45

标签: vba ms-access subforms

我有一个子表单(连续表单),每行都有一个按钮,用于在单击时过滤该记录的主表单。当我单击按钮时,子窗体上的焦点跳转到子窗体的顶部(即第一个记录)。如何让焦点留在记录中。

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

这是我正在使用的VBA代码:

Private Sub select_record_button_Click()
Me.Parent.Form.Filter = "[ID]=" & Me.ID
Me.Parent.Form.FilterOn = True
End Sub

以上代码位于子窗体上按钮的On Click事件中。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

在应用过滤器之前,将子表单的.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