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

Posted

技术标签:

【中文标题】在 Access VBA 中,如何保持文本框处于活动状态并在 Enter 键后选择其所有内容【英文标题】:In Access VBA how does one keep a textbox active and select all its contents after Enter key 【发布时间】:2019-07-02 13:06:50 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

我想出的解决方案是拦截 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

【讨论】:

以上是关于在 Access VBA 中,如何保持文本框处于活动状态并在 Enter 键后选择其所有内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义 Sub 中获取 VBA Access 中文本框的更新值?

如何在 MS Access VBA 上将文本框注释值输入设置为表格数据插入

如何过滤 3 个文本框,然后在 MS Access VBA 中根据它们运行报告

如何让Access 空文本框参与计算时默认是0,如图碳粉为空,计算时自动变0,别用VB代码,VB我会,请用VBA

如何使用 Access VBA 将具有默认值的未绑定文本框的值设置为空字符串

在 Access VBA 中使用代码自动生成文本框