RE:Control de Seguridad en Access
Hola de nuevo Berenice:
Te digo como resuelvo yo este asunto en las aplicaciones que utilizo habitualmente, cuando los usuarios son los mismos.
Entiendo que cada aplicación tiene su propia Base de Datos donde solo están las Tablas (el BackEnd) y luego está la que hace de programa con los formularios, consultas, informes, módulos, etc. que es la que abren los usuarios (el FrontEnd). En un sistema de Red, el BackEnd está en una carpeta compartida del Servidor de Red y del FrontEnd cada usuario tiene una copia exacta en su disco duro local con las Tablas vinculadas al BackEnd de forma que todos conectan a la misma base de tablas (esto es más efectivo y rápido que abrir todos la misma aplicación aunque Access lo permite), hasta aquí todo normal, pero ahora viene la parte que te interesa, controlar los usuarios que entran, para ello lo que yo hago es crear una mdb independiente (Usuarios.mdb) solamente con la Tabla "tblUsuarios" (o el nombre que quieras darle), que guarda los Nombres de cada uno y su respectiva Contraseña, a esta mdb le pongo toda la seguridad posible (esto lo dejamos de momento) y luego en el FrontEnd de cada usuario (que realmente es el mismo solo que es una copia local), pongo dos Formularios: El de Inicio que es el que se establece en el menú Inicio de Access y se abre siempre el primero al ejecutar la aplicación, Maximizado en el Form_Load y con la Propiedad "Menú Contectual: No", éste una vez abierto, abre sobre él como Emergente y Modal el Formulario de Acceso donde hay que teclear el Usuario y Contraseña y que por código conecta con la Tabla "tblUsuarios" de la Base externa "Usuarios.mdb" .
Si hacen tres intentos fallidos de acceso, la aplicación se cierra y cuando el nombre de usuario y contraseña coinciden, se cierra el Form de Acceso y queda abierto el Form de Inicio, el cual SIEMPRE debe de quedar abierto y sobre él se abrirán el resto de objetos; pués bien, en este de Inicio pongo un cuadro de texto Independiente, "UsuarioActivo", que recoge el nombre de usuario justo antes de cerrarse el de Acceso y ahí tenemos siempre disponible el nombre de Usuario que se ha conectado para usarlo donde lo necesitemos (es lo mismo que dice Pepe, pero sin ocultar el formulario de inicio que nos servirá además como FormPrincipal del programa).
Cuando quiero que en un determinado registro se guarde el nombre del usuario que lo ha creado o modificado, así como la fecha y hora, simplemente le pongo por código:
txtUsuario = Form_FormularioInicio.UsuarioActivo
FechaHora = Date + Time
Lógicamente en cada Tabla que quieras controlar tienes que añadir estos dos campos. Tanto el Formulario de Acceso como el de Inicio, tienen que estar en cada una de las seis aplicaciones (FrontEnd), pero la Base con la Tabla de Usuarios y las Base de Tablas (los BackEnd) serán los mismos para todos.
¿ Crees que esto es complicado de hacer ?, pués te aseguro que no lo es, siempre que tengas unos míminos conocimientos de código VBA y además aquí estamos para ayudarte, tu diras........
Saludos
Enrique