Login-ms-access
Estoy utilizando la siguiente solución hecha por un experto que ya no esta disponible... Me funciona muy bien... Pero mi consulta es la siguiente:
¿Hay forma de generar un modulo que me mantenga el usuario logueado?
Esto es como lo utilizo:
Cra una tabla llamada Pass con estos campos:
-Usuario
-Password
-Formulario
Rellénala adecuadamente con los usuarios que quieras y su contraseña y escribe el formulario que quieres que se le abra a cada uno.
Crea un formulario de inicio y llamalo "Inicio", y crea una macro llamada autoexec en la que la única orden sea abrir este formulario que estamos creado ahora. Solo por llamarse Autoexec, esa macro se ejecutara al abrir la base de datos.
En este formulario pon dos cuadros de texto. Llamalos Usuario y Contraseña.
Ahora pon un botón.
En el evento click de ese botón pon este código:
Dim Base As DataBase
Dim pass As Recordset
set Base = CurrentDB
set Pass = Base.openRecordset("select * from pass where Usuario = '" & Usuario & "' and password = '" & Contrasena & "'"
if Pass.RecordCount = 0 then
msgbox "Contraseña incorrecta"
exit sub
end if
'Fijate que da igual que la contraseña este mal, o el usuario no exista. De este modo no das pista al posible intruso.
'Si la ejecucion llega a este punto, es que el usuario y la contraseña son validos. Ahora solo queda Abrir el formulario adecuado a cada usuario.
Docmd. Openform pass! Formulario
DoCmd. Close acForm, "Inicio"
Listo. Ya tienes lo que quieres. A partir de aquí puedes complicar esto y añadir los niveles de seguridad que quieras. Por ejemplo, podrías ocultar la tabla Pass, o sacarla fuera de la base de datos a otra externa, o encriptarla con la encriptación de access o con una que hagas tu mismo.
Pero a menos que tus usuarios tengan un alto nivel de conocimientos de Access, con ocultar la tabla seguramente es suficiente, y quizás ni eso.
¿Hay forma de generar un modulo que me mantenga el usuario logueado?
Esto es como lo utilizo:
Cra una tabla llamada Pass con estos campos:
-Usuario
-Password
-Formulario
Rellénala adecuadamente con los usuarios que quieras y su contraseña y escribe el formulario que quieres que se le abra a cada uno.
Crea un formulario de inicio y llamalo "Inicio", y crea una macro llamada autoexec en la que la única orden sea abrir este formulario que estamos creado ahora. Solo por llamarse Autoexec, esa macro se ejecutara al abrir la base de datos.
En este formulario pon dos cuadros de texto. Llamalos Usuario y Contraseña.
Ahora pon un botón.
En el evento click de ese botón pon este código:
Dim Base As DataBase
Dim pass As Recordset
set Base = CurrentDB
set Pass = Base.openRecordset("select * from pass where Usuario = '" & Usuario & "' and password = '" & Contrasena & "'"
if Pass.RecordCount = 0 then
msgbox "Contraseña incorrecta"
exit sub
end if
'Fijate que da igual que la contraseña este mal, o el usuario no exista. De este modo no das pista al posible intruso.
'Si la ejecucion llega a este punto, es que el usuario y la contraseña son validos. Ahora solo queda Abrir el formulario adecuado a cada usuario.
Docmd. Openform pass! Formulario
DoCmd. Close acForm, "Inicio"
Listo. Ya tienes lo que quieres. A partir de aquí puedes complicar esto y añadir los niveles de seguridad que quieras. Por ejemplo, podrías ocultar la tabla Pass, o sacarla fuera de la base de datos a otra externa, o encriptarla con la encriptación de access o con una que hagas tu mismo.
Pero a menos que tus usuarios tengan un alto nivel de conocimientos de Access, con ocultar la tabla seguramente es suficiente, y quizás ni eso.
1 respuesta
Respuesta de xavi -ae soft-
1