Quisiera saber cómo puedo accesar a ciertos formularios con password para que sean accesados por determinadas personas cuando el programa de access trabaje en modo red... ¿me podrías ayudar por favor? Ya que tengo que restringir el uso del programa dependiendo del puesto que desempeñan... Y por último... ¿cómo puedo hacer ejecutable mi programa en access para que no pueda ser modificado por nadie más?...
1 respuesta
Respuesta de eyama
1
1
eyama, Mi nombre es Eymard Amado Amador, tengo 27 años, de nacionalidad...
Hay varias formas de hacerlo, puedes usar esta teniendo en cuenta que lo que quieres es controlar pueda o no ejecutar cierto formulario según el cargo. Crear las sgtes tablas: TblEmpleados (IdEmpleado, NombreEmpleado, campoN, IdCargo) en el servidor tblUsuarios (IdEmpleado, Login, Password) en el servidor tblPermisosPorCargo (IdCargo, nombreFormulario) en el servidor tblUsuarioActual (NombreUsuarioActual, IdCargoUsuarioActual) en cada archivo cliente Entonces cuando el usuario se conecte a la bd, con su login y password lo buscas en la tabla tblUsuarios, si lo encuentras, entonces a través de su valor en el campo IdEmpleado buscas el Nombre del Usuario y el IdCargo en la tabla tblEmpleados y haces un INSERT con estos datos en la tabla tblUsuarioActual. Luego en el evento Al Cargar o Al Abrir de cada formulario que quieras controlar buscas si el cargo del usuario Actual tiene permiso para abrir dicho formulario, ¿cómo?... asignas a una variable el valor devuelto por la función de Busq así: vIdCargo = Dbusq (? ¿IdCargoUsuarioActual?,? ¿TblUsuarioActual?) Y asignas a un recordset declarado previamente lo siguiente: Set rst = Currentdb.OpenRecordset (?SELECT * FROM tblPermisosPorCargo WHERE IdCargo = ? & vIdCargo & ? AND nombreFormulario Like ?? & Me.Name & ???) ? Si el recordcount de ese recordset (rst) te devuelve 1 entonces si tiene permiso, si te devuelve 0 no tiene permiso, entonces lo informas con un msgbox y cierras el formulario, Algo así: If rst.recordcount = 0 then Msgbox ?Su cargo no tiene permisos para ejecutar este formulario, por lo tanto se cerrará?, vbInformation+ vbOkOnly, ?Permiso Denegado? Docmd.close End if Al cerrar la aplicación creas una función que borre los datos (un solo registro) de la tabla tblUsuarioActual para que cada vez que alguien entre tenga solamente sus datos en dicha tabla. Para tu segunda pregunta te cuento que en Access no se pueden hacer ejecutables, pero puedes hacer todo esto: 1. Poner todos tus objetos como ocultos. 2. Poner contraseña desde la ventana de VBA para que no puedan ver tu código 3. Desde el menú Herramientas/Inicio configurar para que no se vean los objetos de la bd. 4. Bloquear la tecla shift para que no puedan entrar a la bd en modo de diseño. 5. Si ya tienes todo depurado crear un archivo .mde. Creo que ya me extendí demasiado pero las preguntas lo ameritan. Éxitos! Eymard. Bucaramanga, Colombia.
Mil Gracias por tu ayuda!... Te agradezco el tiempo que te tomaste en explicarme todo lo que tengo que hacer, está super claro y tu respuesta me va a sacar del apuro. Gracias por todo!