Problema con el valor de una matriz
Hola Santiago.
Para variar, me ha surgido un nuevo problema con la autentificación del usuario, y es que he definido la matriz "Intentos" para que guarde las veces que se introduce la contraseña y una vez agotado el tercer intento, se cierre la aplicación. Pero no consigo hacer funcionar el contador INTENTOS, ya que según el mensaje "Ha agotado el ..." siempre está en 1º, con lo cual no se por qué la matriz no acumula los intentos.
El código que utilizo es el siguiente:
Private Sub Aceptar_Click()
Dim Permiso
Dim Intentos As Integer
Dim Diferencia As Integer
Permiso = DLookup("[tblpermis].[Password]", "[tblpermis]", "[Password] Like '" & Forms![frmPermis]![KeyPassword].Value & "*'")
If Permiso = Forms![frmPermis]![KeyPassword].Value Then
DoCmd.Close acForm, "frmPermis"
DoCmd.OpenForm "PANEL DE CONTROL"
Else
Intentos = Intentos + 1
Diferencia = 3 - Intentos
MsgBox "Ha agotado el " & Intentos & "º intento de acceso, le quedan " & Diferencia
Exit Sub
End If
If Intentos > 3 Then
MsgBox "No está autorizado a entrar en esta base datos", vbCritical, " Ha agotado sus tres intentos de acceso"
DoCmd.Close acForm, "frmPermis"
End If
If Permiso Is Null Then
MsgBox " ¡ Clave de acceso incorrecta !", 48, " ¡ ATENCIÓN ! ", 50, 50
Password.SetFocus
Me.Password.Value = ""
End If
End Sub
Te agradecería mucho tu ayuda.
Para variar, me ha surgido un nuevo problema con la autentificación del usuario, y es que he definido la matriz "Intentos" para que guarde las veces que se introduce la contraseña y una vez agotado el tercer intento, se cierre la aplicación. Pero no consigo hacer funcionar el contador INTENTOS, ya que según el mensaje "Ha agotado el ..." siempre está en 1º, con lo cual no se por qué la matriz no acumula los intentos.
El código que utilizo es el siguiente:
Private Sub Aceptar_Click()
Dim Permiso
Dim Intentos As Integer
Dim Diferencia As Integer
Permiso = DLookup("[tblpermis].[Password]", "[tblpermis]", "[Password] Like '" & Forms![frmPermis]![KeyPassword].Value & "*'")
If Permiso = Forms![frmPermis]![KeyPassword].Value Then
DoCmd.Close acForm, "frmPermis"
DoCmd.OpenForm "PANEL DE CONTROL"
Else
Intentos = Intentos + 1
Diferencia = 3 - Intentos
MsgBox "Ha agotado el " & Intentos & "º intento de acceso, le quedan " & Diferencia
Exit Sub
End If
If Intentos > 3 Then
MsgBox "No está autorizado a entrar en esta base datos", vbCritical, " Ha agotado sus tres intentos de acceso"
DoCmd.Close acForm, "frmPermis"
End If
If Permiso Is Null Then
MsgBox " ¡ Clave de acceso incorrecta !", 48, " ¡ ATENCIÓN ! ", 50, 50
Password.SetFocus
Me.Password.Value = ""
End If
End Sub
Te agradecería mucho tu ayuda.
1 respuesta
Respuesta de santiagomf
1