【问题标题】:disable shift key on startup in ms-access在 ms-access 中启动时禁用 shift 键
【发布时间】:2010-11-15 12:48:27
【问题描述】:

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

首先我知道这已经在许多其他网站上得到了回答,但是我在这里找不到关于它的问题,但我的需求略有不同。我找到的解决方案集中在放置不可见的按钮以重新启用带有密码等的 shift 键快捷方式。

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

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

首选最简单、最安全最简单的方法。

谢谢!

【问题讨论】:

  • 您是否检查过 AllowBypassKey 下的 Access VBE 帮助文件?帮助文件中提供了相关代码。至于安全性,那就另当别论了,因为任何具有一点编程知识的人都可以禁用您的设置,即使您已经使用 Jet 用户级安全性保护了前端。
  • 不抱歉,我什至不知道有帮助文件。我很少使用 access 并且在 access 中做的 Visual Basic 甚至更少。主要做 .net 和 MsSql 类型的东西。不过感谢您提供的信息。

标签: ms-access keyboard-shortcuts vba


【解决方案1】:

我一直用这段代码

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

你给它一个文件名,然后说你是否想要启用绕过键。

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

我认为解决此问题的唯一方法是只为用户提供运行时版本的访问权限

【讨论】:

  • 我在哪里/如何运行这个脚本?如果我这样做并将访问文件设为只读,那会阻止他们将其改回吗?
  • 您可以将其放在单独的“实用程序”数据库中,也可以将其放在现有数据库的模块中。你这样称呼它 SetBypass False, "C:\MyDatabase.mdb"
  • 效果很好。我把这段代码放在一个新的模块中,然后把那行代码放在我的表单加载函数中。该表单由 autoexec 脚本加载,因此它应该在每次打开数据库时运行。
  • 一个问题,如何将它添加到 autoexec 脚本中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2015-05-17
  • 1970-01-01
相关资源
最近更新 更多