我有一个MS Access数据库。 之前已禁用 Shift 键,但当用户按 F11 时,她/他可以看到导航窗格。 是否有解锁来锁定 F11 键以防止打开导航窗格?
答案 0 :(得分:7)
首先,这里的答案没有意义,因为如果你有100个表单和100个报表,那么你有200个对象需要修改。 (这大大浪费了开发人员的时间)。
更糟糕的是,如果显示报告,则表单没有焦点,再次点击F11时会看到导航窗格。
20年的访问能够运行代码并对任何Fkey或alt键命中操作以运行宏 - 这些设置对应用程序是全局的。
因此,简单的解决方案是为应用程序创建一个自动键宏,并包含F11。这样就可以将GLOBAL用于应用程序。
因此,创建一个名为autokeys的新宏(不是模块)。宏将如下所示:
您可以在{}
中设置功能键您也可以使用^作为控制键(这样您就可以制作全局打印键) 例如:^ 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)
答案 3 :(得分:0)
我认为此链接将提供您正在寻找的答案。
您要查找的功能可以在文件 --> 选项 --> 当前数据库 --> 取消选择“使用访问特殊键”
这将阻止用户使用 F11 Alt+F11 等。
https://docs.microsoft.com/en-us/office/vba/access/concepts/miscellaneous/allowspecialkeys-property
用户仍然可以在打开数据库时按住 shift,然后访问这些特殊键。