Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何拦截内置的查找过程?_Ms Access_Vba - Fatal编程技术网

Ms access 如何拦截内置的查找过程?

Ms access 如何拦截内置的查找过程?,ms-access,vba,Ms Access,Vba,在Access项目中,我有一个自定义查找过程 现在我想消除内置的Find过程,这样用户就不会尝试使用它 因此,我有两项任务要完成: 截取ctrl+F热键 从功能区中删除“查找”按钮 在我的主窗体上,我启用了键预览,我知道如何使用,但我不确定如何检测ctrl键 现在我该怎么办?您可以检查Shift=2。如果按下Shift键,则Shift值为1;如果按下Ctrl键,则Shift值为2;如果按下Alt键,则Shift值为4;如果按下两个或三个按钮,则Shift值的总和;如果未按下任何按钮,则Shift

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

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

因此,我有两项任务要完成:

  • 截取ctrl+F热键
  • 从功能区中删除“查找”按钮
  • 在我的主窗体上,我启用了键预览,我知道如何使用,但我不确定如何检测ctrl键


    现在我该怎么办?

    您可以检查
    Shift=2
    。如果按下Shift键,则Shift值为1;如果按下Ctrl键,则Shift值为2;如果按下Alt键,则Shift值为4;如果按下两个或三个按钮,则Shift值的总和;如果未按下任何按钮,则Shift值为0。因此,您的
    If
    语句应该如下所示:

    If KeyCode = vbKeyF and Shift = 2 then
        KeyCode = 0
    End If
    
    如果要在整个数据库中的任何位置禁用(Ctrl+F),可以执行以下操作:

  • 创建一个名为“自动关键点”的宏
  • 创建此宏后,双击“动作目录”下的“子宏”
  • 将该子宏命名为“^F”
  • 将操作留空

  • 基本上,这将防止(Ctrl+F)处理数据库中的任何表单。此外,您应该能够为希望控制的其他组合键创建其他子宏

    我以前从未使用过它,只是简单地测试了一下,效果很好。虽然我既不能宽恕也不能谴责它的长期使用


    注意:这是在MS Access 2010中测试的,因此您可能需要根据自己的版本进行调整

    谢谢你;我没有意识到
    shift
    不仅仅意味着shift。没有关于ribbon find按钮的线索?@BGM除非他们有Office Pro,否则我不相信他们有权访问它。我们整个办公室都有Office Pro。我必须想办法,因为如果他们使用它,会导致应用程序挂起。@BGM我知道如何对用户完全隐藏功能区,这对您的情况有效吗?Newd-不,我还没有准备好完全隐藏功能区。很抱歉提出一个由两部分组成的问题,但这都是密切相关的,有时会有一个较低级别的答案同时满足这两部分。。。如果我可以插入按钮的功能,那么我就不必删除它。