Establecer una contraseña de acceso a un programa Access

contraseña-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

Por último, 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.

Hasta la próxima.

Descarga el archivo del ejemplo

Por favor, ayúdame y haz clic en el anuncio. Solo te lleva un segundo 😉

 


0 comentarios

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.

Quizá te interese,

Contacto