Código para Deshabilitar campo en un formulario

Feliz fin de semana!

Amigo, en la BD caja de ahorro creada, agregue un nuevo campo llamado "EmpleadoActivo" en la tabla Empleado con propiedad de dato SI/NO, esto para definir cuando un empleado esta activo o esta no Activo (Vacaciones).

En el Formulario Empleado y Formulario Nomina también agregue el campo EmpleadoActivo como puede ver en las capturas anexas.

Cuando en el formulario Nomina Selecciono un Empleado se me activa automáticamente el "SI" o el "NO" según la condición que tiene preestablecida al momento el empleado en la tabla empleado. Hasta aquí bien.

Pero, necesito la ayuda de usted de un código para cuando voy a cargar una nomina en el formulario:

Si, el Empleado esta Activo, todos los campo de ese registro estén habilitado para ingresar datos, en caso contrario (Empleado esta de vacaciones), los demás campos de este registro se deshabiliten. Esto con la finalidad de cometer error en cargar nomina a un empleado que se encuentre de vacaciones. Gracias de antemano por su aporte a esta pregunta

Como puedes ver en la tabla Empleado, la empleada María Lopez, no esta activa al momento por estar de vacaciones.

Formulario Empleado indicando que el empleado esta activo

Formulario Empleado indicando que el empleado es No Activo

Formulario Nomina donde necesito agregar el código solicitado

2 respuestas

Respuesta
2

Lo puedes hacer como comentamos Icue y yo en esta otra pregunta: Bloquear registros del formulario dependiendo de un campo

Solo has de poner los nombres que tu tengas.

¡Gracias! 

Tu solución inicial, me solvento otro problema que tenia el proyecto. En verdad solicite ayuda  a raíz de un requerimiento solvente dos problema a la vez. 

Respuesta
2

Eduardo, tus razones tendrás y no soy quien para discutirlas, pero personalmente creo que es mejor y no te calientas la cabeza con código si simplemente le dices que para hacer la nómina sólo te muestre los empleados activos. Por ejemplo, si tengo la tabla

Como siempre, María está de vacaciones, yo la despediría. Y tengo la tabla Nóminas

En el formulario, cuando despliego Idempleado

Como puedes ver María ni ha aparecido( es lógico que no le pagues)

El origen de la fila del combinado Id empleado es

Pero vamos a suponer que quieres que te muestre todos los empleados, estén activos o no( eres demasiado bueno por no despedirlos). Si elijo a la María

Casi no se distingue en la imagen pero están inhabilitados, pero si elijo al bueno de Pepe

Private Sub IdEmpleado_AfterUpdate()
For Each Control In Form.Controls
If Control.ControlType = acTextBox Then
If DLookup("activo", "empleados", "idempleado=" & Me.IdEmpleado & "") = False Then
Control.Enabled = False
Else
Control.Enabled = True
End If
End If
Next
End Sub

Todavía puedes hacerlo con formato condicional.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas