在ms-access中启动时禁用shift键

时间:2010-11-15 12:48:28

标签: ms-access vba keyboard-shortcuts access-vba

问题:在MS Access中,您可以在打开数据库时按住 shift键,以便绕过启动选项和 AutoExec 脚本。我想永久禁用

首先我知道这已在其他许多网站上得到解答,但我在这里找不到一个问题,但我的需求略有不同。我发现的解决方案专注于放置隐形按钮以重新启用带密码等的shift键快捷键。

我想要一个非常简单的解决方案。我想要一个脚本,我可以添加到我的AutoExec脚本中以禁用shift键快捷键或类似的东西。

不需要重新启用 shift键快捷方式。

首选最简单,最安全最简单方式。

谢谢!

1 个答案:

答案 0 :(得分:8)

我一直使用这段代码

Function SetBypass(rbFlag As Boolean, File_name As String) As Integer
    DoCmd.Hourglass True
    On Error GoTo SetBypass_Error
    Dim db As Database
    Set db = DBEngine(0).OpenDatabase(File_name)
    db.Properties!AllowBypassKey = rbFlag
setByPass_Exit:
    MsgBox "Changed the bypass key to " & rbFlag & " for database " & File_name, vbInformation, "Skyline Shared"
    db.Close
    Set db = Nothing
    DoCmd.Hourglass False
    Exit Function


SetBypass_Error:
    DoCmd.Hourglass False
    If Err = 3270 Then
        ' allowbypasskey property does not exist
        db.Properties.Append db.CreateProperty("AllowBypassKey", dbBoolean, rbFlag)

        Resume Next
    Else
        ' some other error message
        MsgBox "Unexpected error: " & Error$ & " (" & Err & ")"
        Resume setByPass_Exit
    End If
End Function

您传递一个文件名,然后说出是否要启用旁路键。

问题是拥有此代码的任何其他人都可以使用它来“解锁”您的数据库并启用旁路密钥。

我能想到解决这个问题的唯一方法就是只为用户提供访问的运行时版本