【发布时间】:2010-11-12 19:21:18
【问题描述】:
我正在尝试对我在 Microsoft Access 2003 中构建的表单上的提交按钮进行密码保护。单击该按钮时,将向我的数据库中添加一条新记录。密码保护的思想是当用户点击按钮时,会出现一个提示,要求输入密码。他们可以输入密码并单击“确定”以继续验证已正确输入密码,也可以单击“取消”并关闭提示窗口(之后他们将收到确认警报)。如果密码与硬编码的密码匹配,则将添加记录。如果密码不匹配,则会显示错误消息。
这应该很容易。但是,无论密码输入错误、未输入密码或用户退出密码窗口,该记录都将始终添加到数据库中。下面的代码我做错了什么?
Private Sub AddLeadServerButton_Click()
Dim strPasswd
strPasswd = InputBox("Enter Password", "Restricted Form")
'Check to see if there is any entry made to input box, or if
'cancel button is pressed. If no entry made then exit sub.
If strPasswd = "" Or strPasswd = Empty Then
MsgBox "No Input Provided", vbInformation, "Required Data"
Exit Sub
End If
'If correct password is entered open Employees form
'If incorrect password entered give message and exit sub
If strPasswd = "thepassword" Then
DoCmd.GoToRecord , , acNewRec
Me.Parent!NewInstallation.Form!InstallationLeadServerComboBox.Requery
Me.Parent!NewReport.Form!LeadServerFilterComboBox.Requery
Else
MsgBox "Sorry, you do not have access to this form", _
vbOKOnly, "Important Information"
Exit Sub
End If
End Sub
【问题讨论】:
-
您确实意识到任何有足够智慧的人都可以查看您的代码(或编译后的 MDE/ACCDE)并自己找出密码,对吧?
-
是的,但我担心的并不是信息的机密性,只是让我们团队中的某个人添加记录变得不方便,以至于他们需要密码会让他们知道他们不应该这样做。我对 Access 了解不多也无济于事。
-
为什么不检查他们的登录名并将其限制为您不想添加记录的人?
-
维护允许访问该文件的人员列表的开销令人望而却步,但如果您建议高于其他任何一个答案,我会接受它作为解决方案。
-
你不需要维护一个列表。如果有一个 NTFS 安全组及其成员,那么您可以在那里检查他们的成员资格。我们讨论了多少人应该获得访问权限?
标签: ms-access forms vba password-protection ms-access-2003