Ms access 具有访问级别的MS Access 2010登录表单
我的管理层需要一个access数据库,它可以控制哪些用户可以看到表单上的特定字段。例如,如果经理登录,则表单将显示“绩效评级”字段。对于任何其他用户,性能评级字段将不可见 到目前为止,以下是我的一些选择: 1) 使用VBA检测access应用程序的用户名,如果是其管理员的名称,则文本框可见 2) 使用要求用户登录的用户名引用表。具有特殊访问权限的用户将看到文本框 3) 在表单上有一个特殊的小按钮,如果有人点击,它将加载一个小的密码对话框,然后将文本设置为可见Ms access 具有访问级别的MS Access 2010登录表单,ms-access,authentication,vba,ms-access-2010,Ms Access,Authentication,Vba,Ms Access 2010,我的管理层需要一个access数据库,它可以控制哪些用户可以看到表单上的特定字段。例如,如果经理登录,则表单将显示“绩效评级”字段。对于任何其他用户,性能评级字段将不可见 到目前为止,以下是我的一些选择: 1) 使用VBA检测access应用程序的用户名,如果是其管理员的名称,则文本框可见 2) 使用要求用户登录的用户名引用表。具有特殊访问权限的用户将看到文本框 3) 在表单上有一个特殊的小按钮,如果有人点击,它将加载一个小的密码对话框,然后将文本设置为可见 哪个选项最难实现?我已经实现了选项n
哪个选项最难实现?我已经实现了选项nr 1和2,它们非常容易构建。 方案3似乎同样困难 在我的工作环境中,问题是哪一个选项(帐户)维护率低,哪一个对用户要求不高 从这个角度来看,1号选项更加成功
(我宁愿构建不同的表单,而不是打开/关闭字段的视图设置)使用登录表单获取用户特定信息的想法在互联网上随处可见。我建议将你的三个想法结合起来,这才是完美的解决方案 对于两种方法中的任何一种(1和2),您首先需要一个包含信息的表。这个表不需要太复杂(至少现在不需要)。表格应具有以下结构:
tbl_Employees
-------------
EmpID - Auto Number - PK
EmpNam - Text
EmpUserName - Text
EmpPassword - Text - Input Mask (If required)
IsManager - Yes/No - Default - No
然后您必须创建一个表单,一个基本表单,它将有三个控件、两个文本框和一个按钮。第一个文本框用于输入员工用户名,第二个文本框用于输入密码。最后是一个按钮,魔法就在它后面发生。按钮后面的代码(简化)将是与以下内容类似的代码
Private Sub LogInBtn_Click()
On Error GoTo errOccured
Dim eQryStr As String, empRS As DAO.Recordset
eQryStr = "SELECT EmpID, EmpUserName, EmpPassword, IsManager FROM tbl_Employees WHERE EmpUserName = '" & Me.UserNameTxt & "'"
Set empRS = CurrentDb.OpenRecordset(eQryStr)
If empRS.RecordCount <> 0 Then
If Me.PwdTxt = empRS!EmpPassword Then
If empRS!IsManager Then
DoCmd.OpenForm "ManagerForm"
Else
DoCmd.OpenForm "EmployeeForm"
End If
Me.Visible = False
Else
wrongEntry "Password"
End If
Else
wrongEntry "User Name"
End If
exitOnError:
Set empRS = Nothing
Exit Sub
errOccured:
wrongEntry "User Name/Password"
Resume exitOnError
End Sub
Private Sub wrongEntry(entityStr As String)
MsgBox entityStr & " is incorrect (OR) omitted, please check again.", vbCritical
End Sub
PS:隐藏文本控件应设置为不可见,最好以当前事件的形式设置
我希望这有帮助
Private Sub AllowAccessButton_Click()
If Call_Password_Box = "yourPassword" Then
Me.yourHiddenTextBox.Visible = True
Else
MsgBox "Sorry you are not authorised to vies this information (OR) Incorrect Password", vbCritical
End If
End Sub