The first thing you need to do is make the current User's Access level available to the form named "frmDashboard". You can do this various ways. You can store the value in a global variable using a standard module. Another approach would be to pass the value to the dashboard form via an open arg. Here is an example of the code you would use in frmLogin to include an open arg equal to the value of AccessLevelID.
Code:
If IsNull(Me.txtLoginID) Then
MsgBox "Please enter Login ID", vbInformation, "Login ID Required"
Me.txtLoginID.SetFocus
ElseIf IsNull(Me.txtPassword) Then
MsgBox "Please enter password", vbInformation, "Password Required"
Me.txtPassword.SetFocus
Else
If (IsNull(DLookup("[txtuserlogin]", "tblUser", "[txtUserlogin] ='" & Me.txtLoginID.Value & "' And [txtpassword] = '" & Me.txtPassword.Value & "'"))) Then
MsgBox "Incorrect Login ID or Password"
Else
Dim intAccess As Integer
intAccess = DLookup("[AccessLevelID]", "tblUser", "[txtUserlogin] ='" & Me.txtLoginID.Value)
DoCmd.OpenForm "frmdashboard", , , , , , intAccess
DoCmd.Close acForm, "frmlogin"
End If
End If
From there, you can safely store the open arg in frmDashboard for future reference using an unbound textbox. In the Load event of frmDashboard
Me.UnboundTextBox.Value = Me.OpenArgs