Acceso y edición según usuarios

Tengo una base de datos en Access con diferentes formularios e informes. Contienen una serie de campos a cumplimentar y otros tantos (3 o 4) con firmas de responsables en función de su cargo (cuadros combinados que tiran de diversas tablas). Es decir, el que abre la ficha, el que la supervisa, el que la cierra… Quisiera saber si es posible restringir el acceso en Access según el Usuario a un formulario y almacenar que usuario ha cambiado el registro. Es decir, que introduciendo una clave inicial, abra el formulario permitido pero que sólo pueda firmar con su nombre (coger únicamente su nombre del cuadro combinado, no otro nombre) en el cuadro combinado en que figure y no permitirle "firmar" (bloqueados) en aquellos en los que no tiene autoridad (no está en el desplegable) y a la vez que figure en algún campo del registro qué usuario ha sido el último en cambiar los datos. No sé si me he explicado con claridad. El caso es que también habría que dar seguridad a la base de datos, para que no pudiera acceder a las tablas y modificarlas allí. (Abrir con SHIFT pulsado)
Respuesta
1
Lo que estás pidiendo es sumamente complicado porque significa retocar tanto la estructura de los formularios como programar código VB para que puedas conseguir lo que quieras. Y explicarlo aquí es una "salvajada", además de que, sin conocer la estructura de la BD, sería un milagro que la cosa funcionara sin errores.
Si te parece bien pásame una copia de tu BD (sin registros) comprimida en zip a mi correo y yo le echo un vistazo, y te voy comentando lo que veo y cómo hacerlo.
Mi correo es [email protected]
Ya me dirás cosas.

1 respuesta más de otro experto

Respuesta
1
Antes de responder quisiera saber si la base de datos trabaja en red y esta ubicada en algún servidor.
De ser así puedes instalar formularios diferentes en cada cliente accediendo de distinta manera según la jerarqua de cada uno.
Una ventaja es que desde access se puede detectar mediante formulario, el usuario que inicia sesión en el servidor, la hora y el equipo desde el cual se esta trabajando.
A partir de allí se pueden hacer todo tipo de restricciones.
Hola otra vez.
La base de datos está subida a un servidor de empresa, pero yo no tengo privilegios para acceder a ese servidor, es decir, he hecho la base de datos y el departamento de informática la ha colgado allí. Los usuarios se conectan desde citrix y ejecutan el archivo (abren la base de datos) y operan con ella. Es una base de datos para temas de calidad (no conformidades, etc.). Yo ni siquiera accedo a ella, no tengo el citrix, aunque quizá me lo dieran. Cuando hay que hacer algún cambio, los informáticos la bajan y se la dan a mi jefe, que es el que me pasa el archivo para que haga cambios o añada cosas. De hecho debe ser alguna versión reducida de access la que corre en el servidor, pues tuve que cambiar cosas en el diseño porque las barras de herramientas no aparecen, como por ejemplo filtros por formulario, etc.
Supongo que habrá que hacerlo con Visual Basic, pero no sé ni siquiera el esquema general que podría utilizar para hacer esto.
Saludos
No conozco el sistema que me mencionas pero supongo que debe ser un sistema de gestión de red
Mientras la base en bruto se pueda acceder desde cualquier cliente no hay problema en principio. Pero por las restricciones que debe tener, no debe ser fácil utilizar la gestión de usuarios de access.
Lo que se me ocurre es diseñar un formulario en el cual según la persona que se loguea en windows se realize un filtro autimático de los datos. Efectivamente desde Visual Basic. Y guardando después la base local como MDE.
Digámoslo de otra manera:
Tengo una o más bases vinculadas al servidor, me creo una base loca con los login y nombre de todos los usuarios.
En el momento que una persona accede a un ordenador, al abrid el formulario detecta el nombre de usuario y por lo tanto los datos de la persona. Inmediatemnte filtra o bloque los demás registros.
No se si van por ahí los tiros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas