В Access VBA как сохранить текстовое поле активным и выбрать все его содержимое после клавиши Enter - PullRequest
2 голосов
/ 02 июля 2019

В форме доступа я использую текстовое поле для фильтрации несвязанной подчиненной формы. Я хочу позволить конечному пользователю быстро выполнять быстрый последовательный поиск. После того, как клавиша Enter нажата для выполнения первого поиска, я хочу, чтобы курсор / фокус оставались в текстовом поле, а текущий текст поиска был выбран. Таким образом, пользователь может непосредственно начать ввод нового запроса, заменив старый текст поиска.

Я пытался ответить на этот вопрос, но из-за клавиши Enter выбор всегда теряется:

1 Ответ

2 голосов
/ 02 июля 2019

Решение, которое я придумал, состоит в том, чтобы перехватить нажатие клавиши 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
...