在Access VBA中,如何保持文本框处于活动状态并在Enter键之后选择其所有内容

时间:2019-07-02 13:06:50

标签: vba ms-access textbox access-vba

在Access表单中,我正在使用文本框过滤未绑定的子表单。我想允许最终用户快速执行快速顺序搜索。按下Enter键执行第一次搜索后,我希望光标/焦点保留在文本框中,并选择当前的搜索文本。这样,用户可以直接开始输入新的查询,替换旧的搜索文本。

我尝试了this问题的答案,但是由于 Enter 键,选择始终会丢失:

1 个答案:

答案 0 :(得分:2)

我想出的解决方案是拦截 Enter 键。取消该事件很重要,否则 Enter 键将删除选择。

Private Sub txtSearch2_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        Call Search
        If Len(Me.txtSearch2.Text & "") = 0 Then Exit Sub
        Me.txtSearch2.SelStart = 0
        Me.txtSearch2.SelLength = Len(Me.txtSearch2.Text)
        DoCmd.CancelEvent
    End If
End Sub