在MS Access中禁用F11键以防止打开导航窗格

时间:2016-06-29 07:49:01

标签: ms-access

我有一个MS Access数据库。 之前已禁用 Shift 键,但当用户按 F11 时,她/他可以看到导航窗格。 是否有解锁来锁定 F11 键以防止打开导航窗格?

4 个答案:

答案 0 :(得分:7)

首先,这里的答案没有意义,因为如果你有100个表单和100个报表,那么你有200个对象需要修改。 (这大大浪费了开发人员的时间)。

更糟糕的是,如果显示报告,则表单没有焦点,再次点击F11时会看到导航窗格。

20年的访问能够运行代码并对任何Fkey或alt键命中操作以运行宏 - 这些设置对应用程序是全局的。

因此,简单的解决方案是为应用程序创建一个自动键宏,并包含F11。这样就可以将GLOBAL用于应用程序。

因此,创建一个名为autokeys的新宏(不是模块)。宏将如下所示:

enter image description here

您可以在{}

中设置功能键

您也可以使用^作为控制键(这样您就可以制作全局打印键) 例如:^ P

你可以使用+作为shift键,所以

+ {F11}将是您在按下班次F11时运行的宏代码

+ ^ P将是shift + ctrl P

在上面我们可以使用F11运行代码或执行任何我们想要的操作,例如启动表单,但如上所示,我们只需将动作代码保留在F11代码块中。因此,这可用于让F1启动自定义访问“帮助”表单,或将任何GLOBAL的alt键重新映射到应用程序。

然后,您可以在当前数据库启动设置中取消选中show nav窗格,然后就完成了。当然作为开发人员,您将在启动时按住shift键以防止启动代码和表单启动 - 这也会绕过自动键宏并忽略您在当前数据库中“设置”的所有设置,例如隐藏导航窗格。因此,按住Shift键,您可以使用F11显示,隐藏导航窗格,而不是让您的应用程序启动代码运行,这样您就可以作为开发人员工作。

答案 1 :(得分:1)

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

这也可以通过其他键完成。只需添加另一个选择案例语句。

如果您决定在将来做出更改,请确保您有办法显示导航窗格 - 否则您可能会阻止自己进行更改。

答案 2 :(得分:0)

首先尝试使用Google搜索问题。我能够找到多种解决方案。

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)

参考:Disable F11 with VBA

答案 3 :(得分:0)

我认为此链接将提供您正在寻找的答案。

您要查找的功能可以在文件 --> 选项 --> 当前数据库 --> 取消选择“使用访问特殊键”

这将阻止用户使用 F11 Alt+F11 等。

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

用户仍然可以在打开数据库时按住 shift,然后访问这些特殊键。