我在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
我遇到的问题是,如果用户不启用内容,则密码框不会显示。
是否有替代解决方案,因此它将始终询问密码,是否单击了启用内容?
答案 0 :(得分:2)
用户必须启用的内容是宏和代码的执行,因此,只有当所有用户都这样做后,这种保护数据库的方式才起作用。
即使已启用它,也可以通过按住Shift键并双击数据库以完全打开它而无需执行任何代码来轻松绕开它。
有两种方法可以用密码保护数据库:
选择文件->信息->加密数据库。这将允许您使用一个密码来加密整个数据库。它将执行与现在代码中几乎相同的操作,只是更安全。
文件->另存为->创建ACCDE。这会将您的数据库变成仅可执行文件。 这也意味着您不能再对数据库结构进行任何更改!您应该拆分前端和后端,并保留前端的开发副本,以便将其发布给用户只要您进行了任何更改。
答案 1 :(得分:0)