Como bloquear campos en un formulario según tipo de perfil en access

Tengo un formulario en el cual se captura el dato de una cita confirmada

Lo que requiero es que solo el agente de ventas capture ciertos datos y que al momento conforme vallan capturando los datos se bloqueen los campos para que no se puedan modificar y otros les aparezcan bloqueados ( un combo box )

Y que el coordinador de ventas tenga todos los campos habilitados y que este solo pueda hacer modificaciones incluyendo el combobox que al agente de ventas le aparece bloqueado asi mismo que en la tabla donde se guardan los datos me aparezca el id del usuario quien capturo el registro

Cabe mencionar que para entrar a mi App entro con nombre de usuario y contraseña

2 respuestas

Respuesta
1

No entiendo muy bien tu pregunta pero para bloquear y desbloquear los campos de un formulario debes utilizar:
me.NombreDeTuCombobox.enabled = true

me.NombreDeTuCombobox.locked = false

con eso lo bloqueas y con esto los desbloqueas

me.NombreDeTuCombobox.enabled = false

me.NombreDeTuCombobox.locked = true

Entiendo que quieres que dependiendo del usuario, así tengas bloqueados o desbloqueados ciertos controles... esto es un poco complejo ya que debes tener bien nombrados tus controles para que sea más fácil.. por ejemplo, si creas un cuadro de texto, access lo nombra "texto20" pero si ese campo es para el nombre del cliente, debes nombrarlo "txtNombreCliente", el "txt" es para hacer alución a un cuadro de texto, así puedes diferenciarlo entre un cuadro combinado, una lista, etc.

Para bloquear los controles según el usuario, debes crear, en un módulo vba, una variable pública llamada "NivelUsuario" como un dato tipo "integer", así mismo debes guardar en la tabla de usuarios el nivel como un número, y luego crear funciones por cada formulario que quieras tener restringido en derechos.. como te dije, es un poco complejo...

esa parte ya la tengo en cuanto al nivel de usuario y accesos lo que se me complica es que el agente de ventas tenga ciertos controles bloqueados y el coordinador habilitados

Ok.. entonces lo que debes hacer es crear una función en el formulario que permita decidir cuáles controles están bloqueados dependiendo del nivel de usuario, sería algo así:

Private Sub RestringirUsuario()

if nivelusuario = 1 then 'Si la variable nivelusuario = 1 entonces

me.Control1.enabled = false

me.Control1.locked = true

me.Control2.enabled = false

me.Control2.locked = true

'etc

end if

if nivelusuario = 2 then 'Si la variable nivelusuario = 2 entonces

me.Control1.enabled = true

me.Control1.locked = false

me.Control2.enabled = true

me.Control2.locked = false

'etc

end if

End Sub

y luego la llamas en el evento cargar del formulario

Private Sub Form_Load()

call RestringirUsuario

End Sub

Respuesta
1

Isaac: Estaba repasando las preguntas de hace unos días y no sé si tienes éste tema resuelto del todo, porque veo que Alexis te dá una buena solución.

En cualquier caso y comoquiera que hace un tiempo tengo un Fochero del que te dejo el enlace, si te lo quieres mirar, está referido a éste tema.

http://www.mediafire.com/download/hexoulgr9wd1erd/BloqueaControles.rar 

Cuando te pida la contraseña >> ES "Saxo" y que está en el código que tu puedes cambiar.

Espero que te ayude. Saludos >> Jacinto

gracias Jacinto lo checare y te comentare si me funciono

otra consulta referente a que en la tabla me aparezca el usuario quien capturo la información como seria por lo que entiendo este dato lo tomaría del acceso al formulario cuando ingresa o no se si este en lo correcto espero me puedas orientar

Isaac: Si la captura del usuario ya la tienes resuelta, ésto no entra en conflicto.

Solo que si tiene una clave de acceso, desbloquea controles y si no no deja.

Puedes enriquecer el ejercicio, codificando que si la Clave es "Ernesto", habilite los Controles >> TxtBox1, TxtBox20,... y deshabilite el Txt24, Txt65 etc.

Un saludo >> jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas