0

我一直在自学 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  

打开的“表单”有一个组合框,用于控制显示哪些记录。如何根据用户名将登录的用户信息传递给“表单”?如果这甚至是正确的方法!提前感谢大家的帮助。

4

0 回答 0