|
|||||||
Перемещение вверх и вниз по ленточной клавишами управления курсором
Время создания: 16.03.2019 23:43
Раздел: Разные закладки - VBA - Access - msa.polarcom.ru - 06 Формы Подчиненные
Запись: xintrea/mytetra_db_adgaver_new/master/base/1531972673o6h3l1wl53/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Перемещение вверх и вниз по ленточной клавишами управления курсоромКак известно, по умолчанию, в ленточной форме
перемещение от записи к записи происходит только после прохождения
фокуса через все доступные поля. Дабы производить переход так же как в
таблице необходимо: Private Sub Form_Load() Me.KeyPreview=True 'Перехват нажатия клавиш. End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) On Error GoTo KeyDownERR 'Обработка направления перехода Select Case KeyCode Case vbKeyUp 'Нажата клавиша ВВЕРХ Me.Recordset.MovePrevious 'Или так: 'Me.Recordset.Move -1 Case vbKeyDown 'Нажата клавиша ВНИЗ Me.Recordset.MoveNext 'Или так: 'Me.Recordset.Move 1 End Select Exit Sub KeyDownERR: KeyCode = 0 Err.Clear End Sub
Private bFocusInComboBox As Boolean 'Флаг присутствия в (возможно) раззвернутом комбобоксе Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 'es 25.03.2017 - 10.12.2017 LE ' Перемещение по записям как в таблице (клавишами управления курсором ) ' с учётом случая разворачивания поля со списком с клавиатуры : Alt + Down '-------------------------------------------------------------------------- 'Литература: ' https://msdn.microsoft.com/en-us/library/aa733630(v=vs.60).aspx '-------------------------------------------------------------------------- ' Внимание!! ' У формы ставим : Me.KeyPreview = True '-------------------------------------------------------------------------- Dim intAltDown As Integer Dim ShiftKey% Dim ctrl As Control On Error GoTo KeyDownERR
'Заглушка - на случай разворачивания поля со списком с клавиатуры : Alt + Down ShiftKey = Shift And 7 If ShiftKey = 4 And KeyCode = vbKeyDown Then If Me.ActiveControl.ControlType = acComboBox Then 'И если тек. контроль = КомбоБокс bFocusInComboBox = True 'Ставим флаг отбоя 'Debug.Print "Alt + Down in " & Me.ActiveControl.Name End If End If If bFocusInComboBox = True Then Exit Sub 'Обработка направления перехода Select Case KeyCode Case vbKeyUp 'Нажата клавиша ВВЕРХ Me.Recordset.MovePrevious Case vbKeyDown 'Нажата клавиша ВНИЗ Me.Recordset.MoveNext End Select Exit Sub KeyDownERR: KeyCode = 0 Err.Clear End Sub |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|