如何禁用内置的“搜索”对话框

时间:2016-05-03 13:31:09

标签: ms-access access-vba ms-access-2010

是否可以完全禁用搜索功能?

我设法禁用的唯一搜索工具是功能区。但由于我使用子表单,用户可以使用导航栏上的搜索框,或者他可以按 Ctrl + F 开始搜索。

数据表有60,000行,52列。当我开始搜索时,它需要永远。

我可以禁用导航栏,但是如何阻止用户使用 Ctrl + F 打开搜索对话框?

2 个答案:

答案 0 :(得分:1)

在相关表单上,将KeyPreview属性设置为Yes,这会导致按下所有按键,以便在Ms Ms处理之前将其发送到Form_KeyDown事件。

如果您捕获 CTRL + F 组合键并自行处理(如下例所示),它将无法打开搜索对话框。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
    Case vbKeyF
        If (Shift And CTRL_MASK) Then
            MsgBox "No search allowed!", vbCritical
        End If
    End Select
End Sub

答案 1 :(得分:0)

如果要禁用所有表单的搜索功能,请在名为Autokeys的宏中插入SubMacro,并使用^ F和^ H submacro名称捕获CTRL + F(搜索)和CTRL + H(搜索和替换)。 Action定义了一个简单的嘟嘟声,甚至没有。如果您还想避免过滤,请不要忘记在表单属性中设置Shortcut Menu = No