Su ayuda por favor para localizar el error en el siguiente código

El problema es que no me está tomando el total de intentos al ingresar una contraseña errónea (3 intentos), me saca a la primera, cuando lo debería hacer al tercer intento.

Option Compare Database
Option Explicit
Dim numintentos As Integer
Dim AccesoUsuarios As Integer
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, "ATENCIÓN"
Me.TxtLogin.SetFocus
ElseIf Nz(Me.TxtPassword.Value, "") = "" Then
MsgBox "introduzca la contraseña del usuario selleccionado", vbInformation, "ATENCIÓN"
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 = numintentos - 1 Then
numintentos = numintentos - 1
MsgBox "la contraseña intrucida 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, "ADIÓS.."
DoCmd.Close acForm, Me.Name 'y cerramos el de acceso
End If
Else
AccesoUsuarios = DLookup("Id_Acceso", "Usuarios", "Id_Usuario" & Me![TxtLogin])
Select Case AccesoUsuarios
Case 1
MsgBox "ha entrado el administrador", vbInformation, "BIENVENIDO"
DoCmd.OpenForm "Registros", acNormal, "", "", , acNormal
Case 2
MsgBox "Acceso concedido ", vbInformation, "BIENVENIDO"
DoCmd.OpenForm "Registros", acNormal, "", "", , acNormal
Case 3
MsgBox "Acceso concedido para consultas", vbInformation, "BIENVENIDO"
DoCmd.OpenForm "Buscar", acNormal, "", "", , acNormal
End Select
'docmd.openform stdocname, , , stlinkcristeria 'abrimos el formulario correspondiente
DoCmd.Close acForm, Me.Name ' y cerramos el de acceso
End If
End If
End Sub

Gracias por la ayuda

1 Respuesta

Respuesta
1

En primer lugar para hacerlo como veo que lo planteaste

Faltaría inicializar la variable numintentos a 3

Escribe numintentos= 3 luego de las definición de variables dim en la cabecera.

Después deberías modificar esta parte :

If numintentos = numintentos - 1 Then
numintentos = numintentos - 1

por esta otra en este orden

If auxcontraseña <> Me.TxtPassword.Value Then
<strong style="line-height: 1.5em;">numintentos= numintentos-1

if numintentos

Saludos

No olvides inicializar la variable a 3

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas