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,
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".
Vamos ahora con el código que debemos introducir en el formulario "FPass",
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.
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
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.
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.
If vPass = vCompruebo Then
DoCmd.OpenForm "FMenu"
DoCmd.Close acForm, "FPass"
Si por el contrario no coinciden, mostramos un aviso,
MsgBox "Contraseña incorrecta", vbOKOnly, "Error"
txtPass.SetFocus
txtPass.Text = ""
Exit Sub
End If
End Sub
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, invitarte a compartir tus dudas en los comentarios o en el foro, y a darle clic a la publicidad de abajo para ayudarme a seguir creando contenido.
Hasta la próxima.
Descarga el archivo del ejemplo
Por favor, haz clic en el anuncio y ayúdame a seguir creando contenido. Solo te lleva un segundo 😉
Últimas publicaciones
0 comentarios