Отключите клавишу F11 в MS Access, чтобы предотвратить открытие панели навигации

У меня есть база данных MS Access. Клавиша Shift ранее была отключена, но когда пользователь нажимает F11, он / она может видеть панель навигации. Есть ли решение заблокировать клавишу F11 для предотвращения открытия панели навигации?

4 ответа

Во-первых, ответы здесь не имеют смысла, так как если у вас есть 100 форм и 100 отчетов, то у вас есть 200 объектов для изменения. (это огромная трата времени разработчика).

Гораздо хуже, если отчет отображается, то форма не имеет фокуса, и вы снова видите панель навигации, когда нажимаете F11.

Access в течение 20 лет имел возможность запускать код и предпринимать действия для любого нажатия Fkey или Alt Key для запуска макроса - и эти параметры являются ГЛОБАЛЬНЫМИ для приложения.

Таким образом, простое решение заключается в создании макроса автоключей для приложения и включении F11. Таким образом, это будет работать GLOBAL для приложения.

Поэтому создайте новый макрос (а не модуль) под названием autokeys. Макрос будет выглядеть так:

введите описание изображения здесь

Вы можете установить функциональные клавиши в { }

Вы также можете использовать ^ для управляющих клавиш (чтобы вы могли создать глобальный ключ печати), например: ^P

И вы можете использовать + для клавиши Shift, так

+{F11} будет макрос-код, который запускается, когда вы нажимаете Shift F11

+ ^ P будет Shift + Ctrl P

Выше мы могли иметь исполняемый код F11 или делать все, что захотим, например запускать форму, но, как показано выше, мы просто оставляем код действия внутри блока кода F11 пустым. Таким образом, это может быть использовано для того, чтобы F1 запустил форму "справки" пользовательского доступа или переназначил любые альтернативные ключи, которые ГЛОБАЛЬНЫ для приложения.

Затем вы просто снимаете галочку с панели показа в текущих настройках запуска базы данных, и все готово. Конечно, как разработчик, вы будете удерживать клавишу Shift во время запуска, чтобы предотвратить запуск кода запуска и форм - это также игнорирует макрос автоключей и игнорирует все настройки, которые вы "установили" в текущей базе данных, такие как скрытие панель навигации. Удерживая нажатой клавишу Shift, вы можете использовать F11, чтобы показать, скрыть панель навигации и не запускать код запуска приложения, чтобы вы могли работать в качестве разработчика.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
     Select Case KeyCode
          Case vbKeyF11
               KeyCode = 0
               MsgBox "F11 has been disabled.", vbOKOnly, "Disabled Key"
     End Select
End Sub

Это можно сделать и с помощью других клавиш. Просто добавьте еще одно предложение выбора случая.

Также убедитесь, что у вас есть способ показать панель навигации, если вы решите внести изменения в будущем - в противном случае вы можете заблокировать себя от внесения изменений.

Попробуй сначала погуглить свою проблему. Я смог найти несколько решений, делающих это.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 
  If KeyCode = vbKeyF11 Then KeyCode = 0 
End Sub 
'(you need to set the form's Key Preview to Yes)

или попробуйте

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = vbKeyF11 Then
  MsgBox "F11 key is Disabled", vbCritical, "Error"
End If
End Sub

Или это:

File -> Option -> Current DB -> Use Access special Keys (Uncheck)

Ссылка: отключить F11 с VBA

Думаю, эта ссылка даст ответ, который вы ищете.

Нужную функцию можно найти в меню «Файл» -> «Параметры» -> «Текущая база данных» -> «Снимите флажок« Использовать специальные ключи доступа ».

Это помешает пользователю использовать F11 Alt+F11 и т. Д.

https://docs.microsoft.com/en-us/office/vba/access/concepts/miscellaneous/allowspecialkeys-property

Пользователь по-прежнему может удерживать shift при открытии базы данных, затем предоставляя доступ к этим специальным клавишам.

Другие вопросы по тегам