Acceso por usuario

Estoy creando una base de datos en Access que no va a ser usada en red, mi pregunta es si es posible que la BD solicite usuario y contraseña en este caso cuando se quiera acceder a ella.
Gracias,
{"lat":40.3719204544612,"lng":-3.75178813934326}

1 Respuesta

Respuesta
1
Si, se puede.
Solo debes crear una tabla de usuarios y contraseñas y hacer un formulario de paso.
También puedes hacerlo con un solo usuario y contraseña sin necesidad de tablas
Gracias Dayvitt pero..., ¿cómo hago ese formulario de paso? He hecho uno pidiendo usuario y contraseña, para que salga nada más abrir la bases de datos, pero no sé cómo se hace para que, una vez escritos el usuario y la contraseña, al dar a un botón de "aceptar", te permita entrar en la base de datos.
Aprovechando la ocasión, otra duda que se me plantea, es a la hora de hacer un registro de visitas. Como en la duda anterior, tengo la tabla y el formulario para que rocoja usuarios, fecha y hora de acceso, pero no sé cómo hacer para que funcione.
Muchas gracias,
Bien,
Primero necesitaras una tabla con los campos usuario y contraseña (ya me dirás los nombres)
Luego un formulario para la creacion/modificacion de usuarios y contraseñas
Ahora lo difícil:
Una tabla que tenga IdRegistro, Usuario, FechaEntrada, Hora entrada
(Esta tabla reflejara la fecha y hora de entrada de cada usuario)
Luego una consulta de inserción que, dándole solo el nombre de usuario, te ponga el la tabla de registros lo demás.
Un formulario con dos textbox independientes, llamados usuario y contraseña. Y nos servirá para entrar en la base de datos).
Y dos botones, aceptar y cancelar.
Cuando lo tengas avisame que te pongo el código para los botones.
Hola,
Ante todo, muchas gracias por la respuesta tan rápida.
He hecho los deberes, aunque no sé si del todo bien. He creado la tabla "usuarios" con los campos usuario y contraseña (usuarios: DIRECCIÓN, COORDINACIÓN, TRABAJO SOCIAL, EDUCACIÓN SOCIAL, PSICÓLOGO, JURISTA) y, de ahí, un formulario con los mismos campos que permite añadir/modificar usuarios.
Está también la tabla del registro de visitas con los campos que dices, y la consulta y ahí está mi duda, no entiendo bien lo de consulta de inserción. He relacionado estas dos tablas mediante el campo usuario y he hecho también el formulario de usuario u contraseña con los botones aceptar y cancelar, pero es igual que el de usuarios solo que con los botones.
¿Qué hago ahora?
Saludos,
Bien,
Entonces te paso el código para la tabla de inserción.
Dime el nombre de la tabla que contiene (IdRegistro, Usuario, FechaEntrada, Hora entrada)
Registro de visitas
Bien,
Ahora necesito el nombre del formulario que utilizaras para pedir usuario y contraseña (no puede ser el mismo que has hecho para crear y modificar usuarios), así como el nombre de los textbox usuario y contraseña
Usuarios1
Usuario / Contraseña
Aunque está creado con la misma tabla, de ahí que, creo yo, vea a los usuarios y contraseñas (como ****, he tenido esa precaución), moviendo la ruedad del ratón.
Estoy muy pez, pensaba que sabía algo más de bases de datos.
Gracias,
Bien,
Para que no te modifique los usuarios y contraseñas de la tabla.
Ve a propiedades del formulario y en el apartado "Origen de datos" borra lo que haya. Así tendremos un formulario independiente que usaremos como formulario de paso.
Estupendo.
Hecho
Bien,
Ahora create dos botones, uno que ponga cancelar que lo que tiene que hacer es cerrar el access
Y uno que ponga aceptar, que ya le pondremos el código más adelante. Por cierto, necesito el nombre del formulario que va a ir después del formulario de paso.
Hola,
Botones creados. Cancelar te saca de la base de datos. El aceptar tiene que abrir el formulario INICIO.
Bien,
Ahora la parte más difícil
Generale el siguiente código en el Botón aceptar
Dim strSQL As String
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "INICIO"
If IsNull(DLookup("Contraseña","Usuarios","[Usuario]=" & Usuario.Value)) Then
    msgbox "Usuario o contraseña incorrecto"
else
    if contraseña.value = DLookup("Contraseña","Usuarios","[Usuario]=" & Usuario.Value) then
        strSQL = "INSERT INTO [Registro de visitas] (Usuario, FechaEntrada, HoraEntrada) VALUES ('" & Usuario.Value & "','" & Date() & "','" & Time() &"')"
        CurrentDb.Execute strSQL, dbFailOnError
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        DoCmd.Close acForm, "Usuarios1"
    else
        msgbox "Usuario o contraseña incorrecto"
    end if
end if
Hola,
Sí que es complicado, si. He metido todo eso dentro de la solapa eventos "al hacer clic" y me da un error en esta línea:
If IsNull(DLookup("Contraseña", "Usuarios", "[Usuario]=" & Usuario.Value)) Then
¿Ahí estás hablando del formulario donde se piden los datos o en la que están los nombres y contraseñas?
Otra cosa, al quitar el origen de registro en el Usuarios1, no me deja escribir.
Esto es muy difícil.
Bien,
Tienes que meterla en el generador de código, es decir pones el cursor en la linea de texto que hay "al hacerclick" y le das al botón con ... que hay a la derecha. Eliges la opción "Generar código"
Y entre Private Sub y End Sub, tienes que poner el codigo.
Si, si está metido ahí (al darle desde eventos en ... en al hacer clic, me ha llevado a la ventana de códigos).
He modificado esa línea con "Usuario" y [Usuarios], que son los nombres del campo y de la tabla y formulario que permite añadir datos:
If IsNull(DLookup("Contraseña", "Usuario", "[Usuarios]=" & Usuario.Value)).
El mensaje de error que da ahora es Se ha producido un error 2001 en el tiempo de ejecución: Canceló la operación. Creo que la base se ha hecho un lío con el formulario usuarios y el usuarios1 (el que pide los datos).
Qué lío!
Gracias,
Ok,
Sustituye Usuario.Value por:
Chr(34) & Usuario.Value & Chr(34)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas