Poner claves de acceso a Access 2003

Tengo una base de datos access 2003 y quería hacer lo siguiente:

Poder controlar el acceso a la base de datos, algo así:

Usuario que hizo el cambio, tipo de cambio, tabla en la que se hizo el cambio, registro en el que se hizo

El cambio, campo el el que se hizo el cambio, fecha del cambio, valor antes del cambio, y valor despues del cambio.

1

1 respuesta

Respuesta
1

Lo que estás pidiendo es bastante complejo porque requiere la conjunción de muchísimos elementos. No es algo que pueda explicarse en cuatro líneas.

Lo más que puedo hacer es remitirte a estos ejemplos por si hay alguno que pueda serte de utilidad:

Para controlar el acceso de usuarios: http://bit.ly/1ms3SYN 

Para controlar los cambios realizados: http://bit.ly/1ms3R7e 

Respecto al acceso de usuarios hay otros métodos. Si echas un vistazo a los ejemplos de esta página quizá encuentres alguno que se adapte mejor a lo que necesitas: http://bit.ly/1c3GNR0

Ten en cuenta que, como te decía, dudo que alguien se ponga a programar horas y horas para darte una solución.

A ver si con lo que te he aportado te sirve.

Muchisimas gracias, una gran ayuda, por cierto tu página web me quita de muchas

dudas.

Gracias

Hola, perdona la insistencia pero ya me hace bien el control de acceso

a la base de datos con los cambios donde cambia, la hora y el día, etc.

También le he puesto Usuario y contraseña para poder entrar.

Mi pregunta es la siguiente:

Como puedo hacer para que me coja el Usuario que está entrando desde

el usuario y contraseña que he creado y no el Usuario del sistema que es el

que coje por defecto.

Muchas gracias

Si utilizas el sistema del ejemplo que te recomendé (http://bit.ly/1ms3SYN ) verás que lo que se guarda en la tabla TControl es el usuario que se selecciona en el combo de entrada (y que lógicamente cambia en función del usuario que se selecciona). En ningún caso se está analizando el usuario del sistema.

Perdón por mi torpeza a la hora de expresarme. Si eso me lo hace perfecto pero también utilice y me funciona muy bien es la del ejemplo (http://bit.ly/1ms3R7e ) para controlar los cambios y con ese ejemplo que coje el usuario del sistema no el usuario que utilizo para entrar en la base de datos.

No sé si la cuestión es el el código de este último ejemplo donde pone:

.Fields(2).Value = Environ("UserName")

Esto no sé como cambiarlo para que me coja el usuario que realmente estoy utilizando en el controlar el acceso de usuarios.

Muchas gracias por tu paciencia

Te pongo las guías para hacerlo porque no tengo tiempo de ver los ejemplos:

1.- Créate un módulo en el VBE. En él escribes, simplemente:
Public miUser as string

2.- En el código que te verifica que el usuario y el pass son correctos, y justo antes de la línea que te abre el formulario de trabajo, escribe:

miUser = nomUser

Donde nomUser es el nombre de la persona que ha entrado. No recuerdo el nombre de la variable que se utiliza en el ejmplo, pero esa es la que debes utilizar.

3.- En el código del control de cambios cambias la línea que me indicas por

.Fields(2).Value = miUser

Muchísimas gracias funciona todo de maravilla, para tu información te diré que la variable es vUser.

Ahora me pone el usuario que entra en la base de datos, muchísimas, muchísimas gracias por todo el trabajo que te he dado.

Perdona otra vez, todo me funciona bien, pero hay un pequeño problema que solamente me pone el usuario si modifico no si elimino, es decir si modifico algo, entonces en la tabla me pone el usuario, en cambio si elimino algo me registra la eliminación pero pone el usuario del sistema.

Gracias de antemano.

También hecho en falta algo que me diga aparte de modificar y eliminar, cuando meto un registro nuevo.

Gracias

Los ejemplos están explicados paso a paso para que los entendáis y, precisamente por ello, para que seáis capaces de solventar estas dudas que te surgen. Si ya sabes cómo poner el usuario en las modificaciones también sabes cómo ponerlo en las eliminaciones. Sólo se trata de invertir un pequeño tiempo en analizar el código.

El copy-paste es lo más fácil, pero lo menos productivo de cara a vosotros.

Y lo del usuario en un registro nuevo... si lo quieres en la tabla modificaciones estás, primero, quitándole el sentido a la función de esa tabla y, segundo, estás incrementando innecesariamente la información en tu base de datos.

Lo ideal sería crear un campo en tu tabla de origen, algo así como [CreadoPor], y utilizar el evento "Al activar registro" del formulario, con un código similar a este:

...

If me.newrecord then

me.CreadoPor.value=miUser

End if

...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas