jueves, 1 de noviembre de 2018

ACCESS II: Código del Formulario Form_Login

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