#forms #controls #ms-access-2016 #onkeydown
#формы #элементы управления #ms-access-2016 #onkeydown
Вопрос:
У меня есть небольшой код, который использует vbKeyUp или Down для увеличения поля даты (SaleDate). Как я могу сохранить фокус в поле SaleDate? В настоящее время клавиша UpArrow up уменьшает дату на один день и изменяет фокус на предыдущее поле. Клавиша DownArrow увеличивает дату, но перемещает фокус на следующую запись. В обоих случаях я хотел бы иметь возможность нажимать клавишу один или несколько раз, чтобы изменить дату на один или несколько дней.
Private Sub SaleDate_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
'MsgBox "UP"
Me.SaleDate = Me.SaleDate - 1
Case vbKeyDown
'MsgBox "DOWN"
Me.SaleDate = Me.SaleDate 1
End Select
End sub
Ответ №1:
Вы почти на месте, просто:
Подавите нормальную функцию ключа, установив keyCode равным 0:
Private Sub SaleDate_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp
'MsgBox "UP"
Me.SaleDate = Me.SaleDate - 1
KeyCode = 0
Case vbKeyDown
'MsgBox "DOWN"
Me.SaleDate = Me.SaleDate 1
KeyCode = 0
End Select
End sub
И установите Form.KeyPreview
для свойства значение True
в области дизайна, чтобы убедиться, что ваш код запускается до выполнения стандартного эффекта, а не после.
Комментарии:
1. Это сделало свое дело! Большое спасибо.