viernes, 1 de junio de 2018

Access Complemento Para Formulario Login Semana 6



En el capítulo anterior, vimos como mejorar nuestro formulario de Login, añadiendo la funcionalidad de gestionar los usuarios mediante una tabla “dbo_Usuarios” y algo de código agregado a un módulo estandar “bas_Usuarios” y al módulo de formulario.
Ahora, nos surge la necesidad de registrar los distintos inicios de sesión, realizados por parte de los usuarios de nuestra aplicación.
Y ahora, nos preguntamos: ¿Se puede llevar un control de los inicios de sesión, a modo de LOG?
La respuesta es SI.
Pues bien, en este capítulo vamos a tratar justamente eso, añadir una funcionalidad más a nuestro formulario de login para nuestra aplicación. Los “logs de sesión”.

Paso 1

Para ello, necesitamos una tabla más. Que crearemos nuevamente en vista diseño y la guardaremos con el nombre “dbo_logs_sesion”.

  • ID_Log_Sesion (Autonumérico)
  • Fecha (Fecha/Hora)
  • Terminal (Texto, 50)
  • ID_Usuario (Numérico)
  • Resultado (Texto, 100)
  • ContraseñaErronea (Texto, 15)

Paso 2

Ahora, para poder insertar registros en la tabla, crearemos una función en un nuevo modulo estándar que guardaremos con el nombre “bas_Sesion”. Esta función, mediante un recorset DAO, insertará en la tabla tanto los inicios de sesión correctos, como los inicios de sesión fallidos o erróneos.
La función es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'---------------------------------------------------------------------
' Procedure : Log_Sesion
' Author : Witigo (Angel Campos Muñoz)
' Date : 22/09/2014
' Purpose : Inserta un registro en la tabla dbo_Log_Sesion con los
' datos de la sesión de usuario
'---------------------------------------------------------------------
'
Public Function Log_Sesion(intUsuario As Integer, _
                           strResultado As String, _
                           Optional strContraseña As String = "")
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
   Set dbs = CurrentDb()
   Set rst = dbs.OpenRecordset("dbo_Log_Sesion")
   With rst
      ' Agregamos un registro
      .AddNew
      ' Especificamos los campos en los que vamos a insertar
      ' los datos relativos a la sesión de usuario.
      .Fields("Fecha").Value = Now()
      .Fields("Terminal").Value = Environ("Computername")
      .Fields("ID_Usuario").Value = intUsuario
      .Fields("Resultado").Value = strResultado
      .Fields("ContraseñaErronea").Value = strContraseña
      ' Actualizamos el registro
      .Update
   End With
   ' Cerramos el recordset
   rst.Close
   ' Borramos los objetos
   Set rst = Nothing
   Set dbs = Nothing
End Function

Paso 3

Ahora, debemos realizar unas pequeñas modificaciones al código del evento “click” del botón “cmd_Login” para que, inserte un registro en la tabla “dbo_Log_Sesion”, cada vez que un usuario inicie sesión en la aplicación.
Hay que tener en cuenta, que al igual que se puede registrar el inicio de sesión, se puede también registrar el cierre de sesión del usuario.
A continuación, tenemos el código del evento “click” del botón “cmd_Login”.
El resto de funciones y procedimientos quedan igual, ya que no se les ha modificado nada


No hay comentarios.:

Publicar un comentario