如何拦截内置查找过程?

时间:2015-07-08 22:06:50

标签: ms-access access-vba

在我的Access项目中,我有一个自定义查找过程。

现在我想根除内置的Find程序,这样用户就不会尝试使用它。

所以我要完成两项任务:

  1. 拦截 ctrl + F 热键
  2. 从功能区中删除“查找”按钮。
  3. 在我的主窗体上,我启用了 Key Preview ,我知道如何detect keypresses,但我不确定如何检测 ctrl 关键。

    现在该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以查看是否Shift = 2。如果按下Shift键,则Shift值为1;如果按下Ctrl键,则为2;如果按下Alt键,则为4,如果按下这些按钮中的两个或三个,则为这些值的总和;如果未按任何按钮,则为0。因此,您的If声明应如下所示:

If KeyCode = vbKeyF and Shift = 2 then
    KeyCode = 0
End If

答案 1 :(得分:1)

如果要在整个数据库中的任何位置禁用( Ctrl + F ),您可以执行以下操作:

  • 创建一个名为" AutoKeys"的宏。
  • 创建此宏后,双击" Submacro"在行动目录下
  • 说出Submacro" ^ F"
  • 将操作留空
  •  
    基本上这应该阻止( Ctrl + F )处理数据库中的任何表单。此外,您应该能够为您希望控制的其他组合键创建其他子宏。

    我从来没有在我自己之前使用它,只是简单地测试它并且它工作正常。虽然我对长期使用不会宽恕或谴责它。

    注意:这是在MS Access 2010中测试的,因此您可能需要针对您的版本进行调整。