Excel에서와 마찬가지로 키 누르기에서 텍스트 상자를 지울 수있는 방법이 있습니까?키 입력시 텍스트 상자 지우기
다음 코드를 시도했지만 텍스트 상자를 클릭하면 텍스트가 지워집니다. 특정 키를 누를 때 그것을 지우고 싶습니다.
Private Sub Text10_GotFocus()
Text10.Value = ""
End Sub
Excel에서와 마찬가지로 키 누르기에서 텍스트 상자를 지울 수있는 방법이 있습니까?키 입력시 텍스트 상자 지우기
다음 코드를 시도했지만 텍스트 상자를 클릭하면 텍스트가 지워집니다. 특정 키를 누를 때 그것을 지우고 싶습니다.
Private Sub Text10_GotFocus()
Text10.Value = ""
End Sub
해당 컨트롤이 포커스를 얻었을 때마다 컨트롤의 전체 텍스트 내용을 선택할 수 있습니다를 취소하는 데 사용하고자하는 어떤 키의 아스키 값으로 숫자입니다. 그런 다음 키 누르기가 선택한 텍스트를 바꿉니다.
모든 양식의 모든 텍스트 상자에서이 작업을 수행하려면 "동작 입력 필드"설정을 "전체 필드 선택"으로 설정할 수 있습니다. 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
Private Sub Field1_KeyPress(KeyAscii As Integer)
If KeyAscii = 65 Then Me.Field1 = ""
'Or: If Chr(KeyAscii) = "A" Then Me.Field1 = ""
End Sub
변화는 필드
변수 양식의 레벨을 선언
0 CanDelete에 해당하는 경우Private CanDelete as Boolean
텍스트 상자가 포커스를받을이 KeyPress 이벤트에 진정한
Private Sub txtTest_GotFocus()
CanDelete = True
End Sub
에 CanDelete를 설정, 텍스트를 취소
Private Sub txtTest_KeyPress(KeyAscii As Integer)
If CanDelete Then
Me.txtTest = ""
CanDelete = False
End If
End Sub
의
가능한 중복 [텍스트의 선택을 취소하는 방법 매크로 안에?] (http://stackoverflow.com/questions/9588096/how-to-clear-text-box-inside-a-macro) – Fionnuala
기능은 탁월해야합니다. Excel에서 숫자를 입력하고 다른 곳을 클릭하십시오. 동일한 텍스트 상자를 다시 클릭하고 키를 누르면 지워 집니 다. 동일한 기능을 구현하고 싶습니다. – Ish