Creación de usuarios y contraseñas en access
Necesito ayuda para creación de un código para el acceso de diferentes usuarios con contraseñas a diferentes formularios ya pre diseñados, con ayuda de diferentes paginas y tutoriales cree un código, que me genera dos errores, cuando ingreso como administrador de datos me da el acceso, sin embargo a veces me aparece el formulario y a veces no a pesar de que el acceso lo acepta, el segundo error es con los otros usuarios, que siempre me dice, "clave invalida", pero estoy 100 %segura que la clave es correcta, ya que las he cambiado y vuelto intentar miles de veces y me genera el mismo error.
Si hay alguien que me pueda ayudar estaré sumamente agradecida, aquí les dejo el código que tengo:
Private Sub CmdEntrar_Click()
Dim auxContraseña As String
'Comprobamos que hay datos en las cajas de texto
If Nz(Me.Txtlogin.Value, "") = "" Then
MsgBox "Seleccione un nombre de usuario de la lista para acceder", vbInformation, "ATENCION"
Me.Txtlogin.SetFocus
ElseIf Nz(Me.Txtpassword.Value, "") = "" Then
MsgBox "Introduzca la contraseña del usuario seleccionado", vbInformation, "ATENCION"
Me.Txtpassword.SetFocus
Else
If Nz(DLookup("Password", "Usuarios", "Id_usuario=" & Me![Txtlogin]), "") <> "" Then
auxContraseña = DLookup("Password", "Usuarios", "Id_usuario=" & Me![Txtlogin])
End If
If auxContraseña <> Me.Txtpassword.Value Then
If NumIntentos < 3 Then
NumIntentos = NumIntentos - 1
MsgBox "La contraseña introducida es incorrecta" & vbCrLf & _
"Le quedan " & NumIntentos & " intentos" & vbCrLf & vbCrLf & _
"Por favor, introduzca otra", vbExclamation, "INTRODUCCIÓN INCORRECTA"
Me.Txtpassword.Value = ""
Me.Txtpassword.SetFocus
Else
MsgBox "Ha superado el numero de intentos", vbCritical, "ADIOS..."
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
Else
If DLookup("id_acceso", "Usuarios", "id_usuario=" & Me![Txtlogin]) = 3 Then
MsgBox "Ha entrado el Administrador de datos, mostramos todas las tablas", vbInformation, "BIENVENIDO"
Call Admin
Else
If DLookup("id_acceso", "Usuarios", "id_usuario=" & Me![Txtlogin]) = 3 Then
MsgBox "Ha entrado Gerencias, ocultamos todas las tablas", vbInformation, "BIENVENIDO"
Call Admin
Else
If DLookup("id_acceso", "Usuarios", "id_usuario=" & Me![Txtlogin]) = 3 Then
MsgBox "Ha entrado un Usuario, ocultamos todas las tablas", vbInformation, "BIENVENIDO"
Call Usuar
Else
If DLookup("id_acceso", "Usuarios", "id_usuario=" & Me![Txtlogin]) = 3 Then
MsgBox "Ha entrado Cobranza, ocultamos todas la tablas", vbInformation, "BIENVENIDO"
Call cobranzaadmi
Else
If DLookup("id_acceso", "Usuarios", "id_usuario=" & Me![Txtlogin]) = 3 Then
MsgBox "Ha entrado Administracion, ocultamos todas la tablas", vbInformation, "BIENVENIDO"
Call cobranzaadmi
Else
If DLookup("id_acceso", "Usuarios", "id_usuario=" & Me![Txtlogin]) = 3 Then
MsgBox "Ha entrado RRHH, ocultamos todas la tablas", vbInformation, "BIENVENIDO"
Call RRHH
End If
'DoCmd.OpenForm stDocName, , , stLinkCriteria 'Abrimos el formulario correspondiente
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
End If
End If
End If
End If
End If
End If
End Sub
Function Admin()
On Error GoTo Admin_Err
DoCmd.OpenForm "Administrador de datos", acNormal, "", "", , acNormal
Admin_Exit:
Exit Function
Admin_Err:
MsgBox Error$
Resume Admin_Exit
End Function
Function Usuar()
On Error GoTo Usuar_Err
DoCmd.OpenForm "Usuario", acNormal, "", "", , acNormal
Usuar_Exit:
Exit Function
Usuar_Err:
MsgBox Error$
Resume Usuar_Exit
End Function
Function cobranzaadmi()
On Error GoTo cobranzaadmi_Err
DoCmd.OpenForm "Cobranza y admi", acNormal, "", "", , acNormal
cobranzaadmi_Exit:
Exit Function
cobranzaadmi_Err:
MsgBox Error$
Resume cobranzaadmi_Exit
End Function
Function RRHH()
On Error GoTo RRHH_Err
DoCmd.OpenForm "RRHH", acNormal, "", "", , acNormal
RRHH_Exit:
Exit Function
RRHH_Err:
MsgBox Error$
Resume RRHH_Exit
End Function