如何在textBox.Setfocus中使用Access VBA选择TextBox中的所有文本

问题描述 投票:2回答:4

当我单击(或双击)它时,我需要选择Access窗体的文本框中的所有文本。我尝试了以下代码,但未成功:

Me.txt_CompraPreco.SelStart = 0
Me.txt_CompraPreco.SelLength = Len(Me.txt_CompraPreco)

提前致谢。

vba access-vba
4个回答
5
投票

您可以使用下面显示的代码。如果它不起作用,请在第一行代码处放置一个断点。如果它没有在您的断点处停止,那么您的事件将无法识别。

Option Compare Database
Option Explicit

Private Sub txt_CompraPreco_Click()
    If Len(Me.txt_CompraPreco & "") = 0 Then Exit Sub
    Me.txt_CompraPreco.SelStart = 0
    Me.txt_CompraPreco.SelLength = Len(Me.txt_CompraPreco)
End Sub

3
投票

我正在寻找关于这个问题的解决方案,我有同样的问题,但是,我有一个解决方案,我不确定它是否有效,但这是我的代码:

'Declare a flag
Public flagDblClick As Boolean

'Double click event
Private Sub txtbox_DblClick (Cancel As Integer)
  flagDblClick = True
End Sub

'Mouse up Event
Private Sub txtbox_MouseUp(Button As Integer, Shift As Integer, X as Single, Y as Single)
  If flagDblClick Then
    flagDblClick = False
    txtBox.SelStart = 0
    txtBox.SelLength = Len(txtBox.Value)
  End If
End Sub

0
投票

此代码将解决您的问题(与userform一起使用)。

txt_CompraPreco.SetFocus
Me.txt_CompraPreco.SelStart = 0
Me.txt_CompraPreco.SelLength = Len(Me.txt_CompraPreco)

0
投票

我的反复试验发现了这一点。如果您的文本字段被格式化为标准数字并且您已将小数位数设置为特定长度,则输入单个数字时将遇到麻烦。例如,如果字段属性中的小数位设置为2并输入“1”,则将显示“1.00”。要选择整个字段(1.00),必须在确定.SelLength(而不是默认的.Value属性)时指定.Text属性

Me.txtYourFieldname_GotFocus
  Me.txtYourFieldName.SelStart = 0
  Me.txtYourFieldName.SelLength = Len(Me.txtYourFieldName.Text)
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.