Option Compare Database
Option Explicit
' Variable privada que controla los intentos de login fallidos
Private bytErrLogin As Byte
'Procedure: Comprueba_Intentos
' Purpose : Comprueba los intentos de inicio de sesión fallidos y actúa
' en consecuencia.
'-------------------------------------------------------------------------
'
Private Sub Comprueba_Intentos(bytErrLogin As Byte, _
intUsuario As Integer)
If bytErrLogin = Get_ErrMaxLogin Then
' Mostramos el mensaje "Se ha superado el número máximo de intentos
' de inicio de sesión"
MsgBox "Se ha superado el número máximo de intentos de " & _
"inicio de sesión." & _
vbCrLf & vbCrLf & _
"Usuario : """ & Me.cbo_Usuario.Column(1) & """." & _
vbCrLf & vbCrLf & _
"El usuario ha sido bloqueado.", _
vbExclamation, "Inicio de sesión"
' Bloqueamos al usuario
Call Block_Usuario(intUsuario)
' Hacemos log del bloqueo del usuario
Call Log_Sesion(intUsuario, "El usuario ha sido bloqueado.")
With Me
' Actualizamos el combobox cbo_Usuario
.cbo_Usuario.Requery
' Borramos la contraseña
.txt_Contraseña = ""
' Ocultamos la etiqueta
.lbl_Mensaje.Visible = False
End With
End If
End Sub
Private Sub cmd_Login_Click()
Dim intUsuario As Integer
Dim strContraseña As String
intUsuario = Nz(Me.cbo_Usuario.Value, 0)
' Ocultamos la etiqueta
If Me.lbl_Mensaje.Visible = True Then Me.lbl_Mensaje.Visible = False
' Comprobamos si se ha seleccionado usuario
' Comprobamos si se ha introducido contraseña
' Comprobamos el valor introducido para el usuario y su contraseña
' -------------------------------------------------------
' Aquí podemos insertar el código que queremos que se
' ejecute cuando iniciemos la sesión...
' -------------------------------------------------------
' Mostramos mensaje
MsgBox "Sesión de usuario iniciada", _
vbInformation, _
"Inicio de Sesión"
' Hacemos log del inicio de sesión
Log_Sesion intUsuario, "Inicio de sesión."
' Cerramos el formulario
DoCmd.Close acForm, Me.Name
' Añadimos +1 a los intentos de login erróneos
1
' Centramos el foco en el textbox
' Mostramos mensaje en la etiqueta
Call MensajeEtiqueta("La contraseña introducida es errónea.")
' Hacemos log del inicio de sesión fallido
Call Log_Sesion(intUsuario, "Inicio de sesión erróneo.", strContraseña)
' Comprobamos los intentos de inicio de sesión
End Sub
Private Sub MensajeEtiqueta(strMensaje As String)
Dim lbl As Label
Set lbl = Me.lbl_Mensaje
If Nz(strMensaje, "") <> "" Then
' Mostramos mensaje
With lbl
' Hacemos visible la etiqueta
.Visible = True
' Mostramos el Mensaje de aviso
.Caption = strMensaje
End With
End If
' Borramos el objeto
Set lbl = Nothing
End Sub
Private Sub Cmd_Salir_Click()
' Cerramos el Formulario
DoCmd.Close acForm, Me.Name
End Sub
Private Sub Form_Load()
' Establecemos el valor de la variable que controla los
' errores de login...
bytErrLogin = 0
End Sub
No hay comentarios.:
Publicar un comentario