3

Я хочу отключить команду Ctrl + A (выбрать все) в Access 2007. Это возможно?

5 ответов5

5

Вы можете использовать этот код в Access, чтобы поймать CTRL+A и игнорировать его. Недостатком является то, что вам придется добавлять это к каждой форме, которую вы хотите заблокировать. (верх: вам не нужно блокировать все формы)

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyA And Shift = acCtrlMask Then 'Catch Ctrl+A
        KeyCode = 0 'Suppress keypress 
    End If
End Sub

Добавьте это в Form > On Key Down Event

ВАЖНО: Прокрутите вниз до конца списка событий и измените Key Preview на Yes.

2

Создайте макрос с именем AutoKeys. В первом столбце введите ^ A, а во втором выберите Beep из выпадающего списка. Это будет вызывать звуковой сигнал в любое время ^ A нажат в любом месте вашего приложения.

Если вы хотите абсолютно ничего не делать (т. Е. Без BEEP), вам нужно написать функцию для вызова, которая ничего не делает, и вызвать ее с помощью действия RunCode.

Если вы хотите разрешить это в некоторых контекстах, а не в других, вам придется написать более сложный код для этого. Я не совсем уверен, как будет выглядеть этот код, поскольку он поднимает ряд интересных проблем.

И, конечно же, это вопрос StackOverflow ...

(Честно говоря, я думаю, что весь этот вопрос всегда был там, поскольку ответы требуют либо написания кода, либо создания чего-то похожего на код, то есть макроса)

1
#IfWinActive, ahk_class OMain
^a::Return
#IfWinActive

На языке автоматизации Autohotkey .

В качестве альтернативы:

#IfWinActive, ahk_class OMain
^a::MsgBox, Oh god oh god we're all going to die
#IfWinActive
0

Я так не думаю. Эта комбинация клавиш одинакова в большинстве пакетов (не только в MS) и определена на довольно базовом уровне.

Конечно, это когда кто-то другой приходит и доказывает, что я не прав

0

Следующий код выбирает весь текст в текстовом или комбинированном окне (вместо выбора всей таблицы).

Используйте этот код в событии KeyDown формы, и не забудьте также установить для свойства "Предварительный просмотр ключа" в свойствах события формы значение "Да" (в противном случае это не вызовет событие нажатия клавиши для CTRL + A).

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyA And Shift = acCtrlMask Then
        If TypeOf Me.ActiveControl Is TextBox Then
            Dim txt As TextBox
            Set txt = Me.ActiveControl
            txt.SelStart = 0
            txt.SelLength = Len(txt.text)
        ElseIf TypeOf Me.ActiveControl Is ComboBox Then
            Dim cmb As ComboBox
            Set cmb = Me.ActiveControl
            cmb.SelStart = 0
            cmb.SelLength = Len(cmb.text)
        End If
        KeyCode = 0 ' Cancel the default action (of selecting the entire table)
    End If
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .