Clear Textbox on key press

Ish picture Ish · Jun 22, 2012 · Viewed 10.5k times · Source

Is there any way to clear the textbox on keypress like in excel.

I tried the following code but it clears the text when clicking on the textbox. I want it to clear it when a certain key is pressed.

Private Sub Text10_GotFocus()
Text10.Value = ""
End Sub

Answer

HansUp picture HansUp · Jun 22, 2012

You could select the control's entire text content whenever that control gets focus. Then your keypress would replace the selected text.

If you want that to happen for every text box on every form, you can set "Behavior entering field" setting to "Select entire field". (In Access 2007, find that setting from Office Button -> Access Options -> Advanced, then look under the Editing heading of that dialog. For Access 2003, see this page.)

Not only will that setting be applied to form controls, but also to tables and queries in datasheet view. If that's not what you want, you can use VBA in your form's module to select the text for only specific controls:

Private Sub MyTextBox_GotFocus()
    Me.MyTextBox.SelStart = 0
    Me.MyTextBox.SelLength = Len(Me.MyTextBox)
End Sub

If you want to do that for multiple controls, you could create a general procedure:

Private Sub SelectWholeField()
    Me.ActiveControl.SelStart = 0
    Me.ActiveControl.SelLength = Len(Me.ActiveControl)
End Sub

Then call that procedure from the got focus event of an individual control like this:

Private Sub MyTextBox_GotFocus()
    SelectWholeField
End Sub