问题:在MS Access中,您可以在打开数据库时按住 shift键,以便绕过启动选项和 AutoExec 脚本。我想永久禁用。
首先我知道这已在其他许多网站上得到解答,但我在这里找不到一个问题,但我的需求略有不同。我发现的解决方案专注于放置隐形按钮以重新启用带密码等的shift键快捷键。
我想要一个非常简单的解决方案。我想要一个脚本,我可以添加到我的AutoExec脚本中以禁用shift键快捷键或类似的东西。
我不需要重新启用 shift键快捷方式。
首选最简单,最安全和最简单方式。
谢谢!
答案 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
您传递一个文件名,然后说出是否要启用旁路键。
问题是拥有此代码的任何其他人都可以使用它来“解锁”您的数据库并启用旁路密钥。
我能想到解决这个问题的唯一方法就是只为用户提供访问的运行时版本