Establecer una contraseña de acceso a un programa Access

Escrito por Administrador

20 de octubre de 2022

Existen muchas razones por las que podemos llegar a necesitar proteger un programa en Access mediante una contraseña.

Por lo general, el motivo suele estar relacionado con la seguridad y el control del acceso a la información del mismo. Sin embargo, también se me ocurre que la razón sea la de identificar al usuario que está utilizando el programa en un momento determinado para poder así registrar quién modifica dicha información.

Por eso, sea cual sea tu necesidad, vamos a crear un formulario de acceso mediante usuario y contraseña. ¡Vamos allá!

En primer lugar, te muestro el formulario "FPass" que hemos creado para tal fin,

bloquear-access-fecha

Es muy sencillito, pero con esto nos basta.

A continuación, es necesario crear una tabla donde daremos de alta a los usuarios con sus contraseñas correspondientes. En el ejemplo, le he puesto el nombre "TPass" y he dado de alta a dos usuarios: "administrador" y "usuario".

bloquear-access-fecha
bloquear-access-fecha

Vamos ahora con el código que debemos introducir en el formulario "FPass",

Private Sub cmdAceptar_Click()

Dim vUser As String, vPass As String
Dim vCompruebo As Variant

'Guardamos los valores introducidos

vUser = Nz(Me.cboUser.Value, "")
vPass = Nz(Me.txtPass.Value, "")

'Si alguno de los campos está vacío, avisamos y salimos

If vUser = "" Or vPass = "" Then

MsgBox "Es necesario rellenar los dos campos", vbOKOnly, "Error"
Exit Sub

End If

'Buscamos la contraseña correcta en la tabla Passwords según el usuario que ha accedido

vCompruebo = DLookup("[Contraseña]", "TPass", "[Usuario]='" & vUser & "'")

'Comprobamos si la contraseña introducida coincide con la de la tabla

If vPass = vCompruebo Then

DoCmd.OpenForm "FMenu"
DoCmd.Close acForm, "FPass"

Else

'Si no coincide avisamos y salimos

MsgBox "Contraseña incorrecta", vbOKOnly, "Error"
txtPass.SetFocus
txtPass.Text = ""

Exit Sub

End If

End Sub

Veamos el código detenidamente.

Lo primero que hacemos es guardar los valores de los campos "Usuario" y "Contraseña" en las variables vUser y vPass.

A continuación, comprobamos que ambas variables contengan datos, es decir, que los campos se encuentren rellenos. En caso negativo, mostramos un aviso indicándolo.

Private Sub cmdAceptar_Click()

Dim vUser As String, vPass As String
Dim vCompruebo As Variant

'Guardamos los valores introducidos

vUser = Nz(Me.cboUser.Value, "")
vPass = Nz(Me.txtPass.Value, "")

'Si alguno de los campos está vacío, avisamos y salimos

If vUser = "" Or vPass = "" Then

MsgBox "Es necesario rellenar los dos campos", vbOKOnly, "Error"
Exit Sub

End If

bloquear-access-fecha

En el caso en que se encuentren rellenos ambos campos, el código continúa consultando en la tabla "TPass" la contraseña correcta para el usuario seleccionado utilizando la función DLookUp en Access.

'Buscamos la contraseña correcta en la tabla Passwords según el usuario que ha accedido

vCompruebo = DLookup("[Contraseña]", "TPass", "[Usuario]='" & vUser & "'")

Ahora comprobamos si la contraseña de la tabla coincide con la introducida por el usuario en el formulario.

En caso afirmativo, abrimos el programa y cerramos el formulario de acceso.

'Comprobamos si la contraseña introducida coincide con la de la tabla

If vPass = vCompruebo Then

DoCmd.OpenForm "FMenu"
DoCmd.Close acForm, "FPass"

bloquear-access-fecha

Si por el contrario no coinciden, mostramos un aviso,

'Si no coincide avisamos y salimos

MsgBox "Contraseña incorrecta", vbOKOnly, "Error"
txtPass.SetFocus
txtPass.Text = ""

Exit Sub

End If

End Sub

bloquear-access-fecha

Finalmente, recalcar la importancia de proteger el código. De lo contrario, cualquiera podría acceder a vuestra base de datos en modo administrador y deshabilitarlo.

Espero que te haya servido este artículo y que a partir de ahora puedas proteger con contraseña tus programas desarrollados en Access sin ningún problema.

Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.

Hasta la próxima.

Si te ha servido y quieres donar

Descarga el archivo del ejemplo

2 Comentarios

  1. Avatar

    Ante todo, agradecerle el tiempo que dedica a iluminar el camino a los que, como yo, somos neófitos en la programación de VBA Access. He adaptado el ejemplo a mi proyecto y funciona perfectamente. En el mismo sentido, me gustaría si ello fuera posible, que subiera algún ejemplo para poder establecer permisos a los distintos perfiles de usuarios. GRACIAS

    Responder
    • Avatar

      Buenos días Jose María,

      Lo anoto. En el próximo post subiré un ejemplo sobre este tema.

      Saludos.

      Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Últimas publicaciones

Categorías

marzo 2024
LMXJVSD
 123
45678910
11121314151617
18192021222324
25262728293031

Debates en el foro

Avatar
Formularios con ADO

Contacto