Можно ли отключить Ctrl + A в Access 2007?

3927
Johan

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

3

5 ответов на вопрос

5
subman

Вы можете использовать этот код в 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событию

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

2
David W. Fenton

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

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

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

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

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

1
Phoshi
#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 
Где я могу разместить этот код? Johan 14 лет назад 0
Установите autohotkey, затем создайте файл с расширением `.ahk`. Запустите этот файл (поместите его в автозагрузку для достижения наилучших результатов) и попробуйте и управляйте :) Phoshi 14 лет назад 0
Звучит немного сложно. База данных должна работать на разных компьютерах, поэтому установка чего-то другого, кроме простого доступа, невозможна. Спасибо, в любом случае. Johan 14 лет назад 1
Вы можете скомпилировать ахк-скрипты для работы без необходимости устанавливать что-либо, что, по крайней мере, менее хлопотно. Я не думаю, что вы найдете более простой вариант, но не теряйте надежду :) Phoshi 14 лет назад 0
0
ChrisF

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

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

0
user43308

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

Используйте этот код в событии 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