Está en la página 1de 5

La gestión de usuarios de nuestra aplicación creada en Microsoft Access es tan amplia como habilidades y

recursos tenga el programador en cuestión. Es mas, como siempre se ha dicho, el fin justifica los medios, y en
este caso, para llegar al mismo fin, cada programador puede utilizar sus propios medios, ya se sabe del otro
dicho «Todos los caminos llevan a Roma».

Pues bien, llegados a este punto explicaremos un par de métodos, uno sencillo y el otro mas complejo que
desarrollaremos en el siguiente post, de como podríamos implementar la gestión de usuarios en nuestra base
de datos.

Un apunte antes de comenzar, en Access se pueden proteger nuestros ficheros con una contraseña sin
mucha complicación. Dicha contraseña, la misma para todo el mundo, nos la pide al abrir el fichero pero ese
no es el caso que nos ocupa.

Gestión Básica
Yo definiría la gestión básica a que cada usuario disponga de una contraseña y al abrir la aplicación se le pida
introducir su nombre de usuario o su DNI o su Correo y su contraseña, una vez que comprobemos que ambos
coinciden, le dejamos acceder a nuestra base de datos.

Para ello crearemos una tabla «tblUsuarios» con los campos «IdUsuario, Nombre, Contraseña»

Dicha tabla, para el caso que nos atañe, voy a rellenarla con algunos usuarios y sus respectivas contraseñas,
por ejemplo:

45778456Ñ —– PEPITO GRILLO ——————— 3456576


55675776Y  —– EL PEQUEÑO SALTAMONTES —- 7868654
56767456J  —– PULGARCITO ———————— 454657876

Ahora necesitamos un formulario para la validación de nuestros usuarios que puede ser algo parecido a esto:
Y ahora nos centraremos en el código del botón «Aceptar» que debe comprobar que «DNI» y «Contraseña»
introducidos corresponden a un usuario autorizado de nuestra aplicación.

Para ello, en «Vista Diseño» accedo a las propiedades del botón «Aceptar» y en la pestaña «Eventos» me
sitúo en el evento «Al hacer Clic» y pulso sobre el botón con los tres puntitos que hay a la derecha para crear
un «Procedimiento de Evento» y elscribimos el siguiente código:

view plaincopy to clipboardprint?


1. Private Sub cmdAceptar_Click()  
2.   
3. ' Buscamos el dni en la tabla tblUsuarios, en caso de no  
4. ' encontrarlo avisaremos con un mensaje y saldremos del  
5. ' procedimiento.  
6. If IsNull(DLookup("IdUsuario", "tblUsuarios", _  
7. "IdUsuario = '" & Me.txtIdUsuario & "'")) Then  
8. Call MsgBox("El usuario no existe en nuestra base de datos.", vbCritical, "Atención")  
9. Exit Sub  
10. End If  
11.   
12. ' Si llegamos hasta aquí es porque el dni existe  
13. ' en la base de datos, por lo tanto vamos a  
14. ' comprobar si la contraseña coincide con la del  
15. ' dni introducido.  
16.   
17. ' Primero creamos una variable para  
18. ' guardar la contraseña del usuario  
19. ' que previamente hemos validado.  
20.   
21. Dim sContraseña As String  
22. sContraseña = DLookup("Contraseña", "tblUsuarios", _  
23. "IdUsuario = '" & Me.txtIdUsuario & "'")  
24.   
25. ' Una vez tenemos la contraseña en la variable "sContraseña"  
26. ' la contrastamos con la que ha introducido el usuario  
27. ' en el formulario de validación.  
28.   
29. If sContraseña = Me.txtContraseña Then  
30. ' Informamos al usuario de que la contraseña  
31. ' es correcta y cerramos el formulario  
32. ' dándole paso al resto de la aplicación  
33.   
34. ' Además, como somos un programador que mimamos  
35. ' los detalles le daermos el mensaje personalizado  
36. ' con su nombre al usuario, para ello, buscamos primero  
37. ' en la tabla, el nombre que corresponde con el dni  
38. ' introducido.  
39.   
40. Dim sNombre As String  
41. sNombre = DLookup("Nombre", "tblUsuarios", "idUsuario= '" _  
42. & Me.txtIdUsuario & "'")  
43.   
44. ' Con el nombre del usuario en la variable "sNombre"  
45. ' procedemos a mostrar el mensaje personalizado.  
46. Call MsgBox("Bienvenido " & sNombre & ",puede acceder al sistema." _  
47. , vbInformation, "Datos correctos")  
48. DoCmd.Close  
49. Else  
50.   
51. ' Si es incorrecta, informamos al usuario y llevamos  
52. ' el cursor de nuevo al cuadro de texto de la contraseña  
53. ' para que el usuario vuelva a escribirla.  
54. Call MsgBox("La contraseña es incorrecta. Vuelva a intentarlo.", _  
55. vbExclamation, "Datos correctos")  
56. Me.txtContraseña.SetFocus  
57. End If  
58. End Sub  

Guardáis el formulario y probáis que funciona tal y como lo hemos planeado peeeeeeero, nos ha faltado un
pequeño detalle. ¿De que nos sirve tener un formulario de validación si podemos pulsar sobre la «X» de
cerrar formulario y seguir usando la aplicación? ¿o pulsar cualquier otro formulario y seguir usándola?

Efectivamente, hay que configurar nuestro formulario con las siguientes características:

1. Que nos aparezca nada mas abrir nuestro programa.


2. Que no nos deje manipular otros objetos hasta que no se cierre.
3. Que le botón de «cancelar» cierre completamente la aplicación.

Punto 1:
Pulsamos botón de Access, arriba a la izquierda, luego a «Opciones de Access» y a continuación nos
situamos en «Base de datos actual». Allí nos encontraremos con la opción «Mostrar Formulario» acompañada
de un desplegable donde podremos seleccionar nuestro formulario recién creado:
Con esto le estamos indicando que al abrir la aplicación, el primer formulario que aparezca sea el nuestro de
validación de usuarios.

A continuación tendremos que configurar dicho formulario para que no se pueda realizar otra cosa hasta que
no lo cerremos o salgamos de la aplicación.

Punto 2:
Abrimos nuestro formulario «frmValidación» en modo diseño, vamos a sus propiedades, pestaña «Otras» y
marcamos «Emergente y Modal» en «Si».

Punto 3:
Y por último, le pondremos el código al botón de «Cancelar» para que en vez limitarse a cerrar el formulario
que directamente se salga de la aplicación. Los pasos para llegar a su procedimiento de evento «Al hacer
Clic» son iguales que con el botón de «Aceptar» así que no los repito.

Una vez en su procedimiento de evento le añadimos la siguiente línea:

view plaincopy to clipboardprint?


1. Private Sub cmdCancelar_Click()  
2. DoCmd.Quit  
3. End Sub  

Y con esto tendremos resuelta nuestra gestión simple de los usuarios. A partir de aquí se puede mejorar todo
lo que queramos como por ejemplo utilizar contraseñas encriptadas o lo que trataremos en el siguiente post,
como gestionar las zonas a las que tiene acceso y a las que no cada usuario, o sea, si Pepito Grillo solo
quiero que acceda a las ventas a clientes pero no quiero que acceda al almacén. Pero eso, como os digo, lo
dejamos para la próxima publicación.

También podría gustarte