我一直在自学 Microsoft VBA for Applications,但我确实需要帮助来克服障碍。我有一个登录表单,它通过根据分配的角色打开特定表单来控制访问。一切正常,但它允许一个人查看所有成员记录。我正在尝试将“表单”限制为登录的用户。下面是我用于登录的代码。
Private Sub Command1_Click()
Dim User As String
Dim UserLevel As Integer
Dim TempPass As String
Dim ID As Integer
Dim Username As String
Dim TempID As String
If IsNull(Me.txtUserName) Then
MsgBox "Please enter UserName", vbInformation, "Username required"
Me.txtUserName.SetFocus
ElseIf IsNull(Me.txtPassword) Then
MsgBox "Please enter Password", vbInformation, "Password required"
Me.txtPassword.SetFocus
Else
If (IsNull(DLookup("UserLogin", "Users", "UserLogin = '" & Me.txtUserName.Value & "' And UserPassword = '" & Me.txtPassword.Value & "'"))) Then
MsgBox "Invalid Username or Password!"
Else
TempID = Me.txtUername.Value
Username = DLookup("[UserName]", "Users", "[UserLogin] = '" & Me.txtUserName.Value & "'")
UserLevel = DLookup("[UserType]", "Users", "[UserLogin] = '" & Me.txtUserName.Value & "'")
TempPass = DLookup("[UserPassword]", "Users", "[UserLogin] = '" & Me.txtUserName.Value & "'")
UserLogin = DLookup("[UserLogin]", "Users", "[UserLogin] = '" & Me.txtUserName.Value & "'")
DoCmd.Close
If (TempPass = "password") Then
MsgBox "Please change Password", vbInformation, "New password required"
DoCmd.OpenForm "frmUserinfo", , , "[UserLogin] = " & UserLogin
Else
'Open different form according to user level
If userLevel = 1 Then 'For Admin
DoCmd.OpenForm "Training"
Else
'For Trainee
DoCmd.OpenForm "Form", acNormal, , "ID = & TempID 'TempID finds the lastname from UserLogin and I need the number from UserName
End If
End If
End If
End Sub
打开的“表单”有一个组合框,用于控制显示哪些记录。如何根据用户名将登录的用户信息传递给“表单”?如果这甚至是正确的方法!提前感谢大家的帮助。