有没有办法像在Excel中那样清除按键上的文本框。
我尝试了以下代码,但在单击文本框时会清除文本。我希望它在按下某个键时清除它。
Private Sub Text10_GotFocus()
Text10.Value = ""
End Sub
答案 0 :(得分:2)
只要该控件获得焦点,您就可以选择控件的整个文本内容。然后您的按键将替换所选文本。
如果您希望每个表单上的每个文本框都能出现这种情况,可以将“行为输入字段”设置为“选择整个字段”。 (在Access 2007中,从Office按钮中找到该设置 - >访问选项 - >高级,然后查看该对话框的编辑标题下。对于Access 2003,请参阅this page。)
不仅将该设置应用于表单控件,还应用于数据表视图中的表和查询。如果这不是您想要的,您可以在表单的模块中使用VBA来选择仅特定控件的文本:
Private Sub MyTextBox_GotFocus()
Me.MyTextBox.SelStart = 0
Me.MyTextBox.SelLength = Len(Me.MyTextBox)
End Sub
如果您想为多个控件执行此操作,则可以创建一般过程:
Private Sub SelectWholeField()
Me.ActiveControl.SelStart = 0
Me.ActiveControl.SelLength = Len(Me.ActiveControl)
End Sub
然后从单个控件的焦点事件中调用该过程,如下所示:
Private Sub MyTextBox_GotFocus()
SelectWholeField
End Sub
答案 1 :(得分:0)
Private Sub Field1_KeyPress(KeyAscii As Integer)
If KeyAscii = 65 Then Me.Field1 = ""
'Or: If Chr(KeyAscii) = "A" Then Me.Field1 = ""
End Sub
将数字更改为您要用于清除字段的任何键的ascii值
答案 2 :(得分:0)
声明表单级别变量
Private CanDelete as Boolean
当TextBox获得焦点时,将CanDelete设置为True
Private Sub txtTest_GotFocus()
CanDelete = True
End Sub
在KeyPress事件中,如果CanDelete为True,则清除文本
Private Sub txtTest_KeyPress(KeyAscii As Integer)
If CanDelete Then
Me.txtTest = ""
CanDelete = False
End If
End Sub