密码保护表单访问

时间:2018-07-16 08:09:44

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

我在on_open的表单上有以下代码

Dim PassWord As String
PassWord = InputBox("Enter Password")

    If PassWord = "1234" Then
        'Open Form
        Exit Sub
    Else
        MsgBox ("You're not authorized.")
        DoCmd.Close acForm, Me.Name
    End If

我遇到的问题是,如果用户不启用内容,则密码框不会显示。

是否有替代解决方案,因此它将始终询问密码,是否单击了启用内容?

2 个答案:

答案 0 :(得分:2)

用户必须启用的内容是宏和代码的执行,因此,只有当所有用户都这样做后,这种保护数据库的方式才起作用。

即使已启用它,也可以通过按住Shift键并双击数据库以完全打开它而无需执行任何代码来轻松绕开它。

有两种方法可以用密码保护数据库:

  • 选择文件->信息->加密数据库。这将允许您使用一个密码来加密整个数据库。它将执行与现在代码中几乎相同的操作,只是更安全。

  • 文件->另存为->创建ACCDE。这会将您的数据库变成仅可执行文件。 这也意味着您不能再对数据库结构进行任何更改!您应该拆分前端和后端,并保留前端的开发副本,以便将其发布给用户只要您进行了任何更改。

答案 1 :(得分:0)

创建一个名称为 AutoExec

的宏

数据库启动时,Access会先运行AutoExec宏,然后再运行其他宏或VBA代码。

AutoExec宏具有以下条件和操作 enter image description here

这将在启用宏之前运行。

enter image description here

不建议使用此方法,因为它很容易被用户绕开。