Try switching around how you are validating - check the password first, if invalid, then MsgBox will appear. If it's good, then it will move on the If...Then where the password is correct. Here, you will nest another If...Then where the cmbusername value is = to either your GUEST or ADMIN ID code. For the purposes of the coding below, I used the GUEST code of "456123". This worked well for me. Coding is below.
Code:
If Me.txtPassword.Value <> DLookup("Password", "tblUser", "[ID]=" & Me.cmbusername.Value) Then
MsgBox "Invalid password. Please try again.", vbOKOnly, "Required Data"
Me.txtPassword.SetFocus
End If
If Me.txtPassword.Value = DLookup("Password", "tblUser", "[ID]=" & Me.cmbusername.Value) Then
If Forms!frmLogin!cmbusername.Value Like "456123" Then
DoCmd.OpenForm "frmNavigationGuest"
Else
DoCmd.OpenForm "frmNavigationAdmin"
End If
DoCmd.Close acForm, "frmLogin"
End If
Hope this helps.