No consigo almacenar los datos en una matriz

Hola experto.
Estoy realizando una base de datos en Access 2000 y me ha surgido un 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
1
El problema es que la variable esta definida dentro del private sub, al hacerlo de esta manera la misma vuelve a 0 cada vez que la definís. La solución es crear una variable global con ese nombre, para hacer esto tienes que crear un módulo y escribir los siguiente
Option Compare Database
Option Explicit
Public Intentos As String
Y obviamente no hace falta la linea
Dim Intentos As Integer
dentro del private sub.
Espero haber ayudado, perdón por la demora en la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas