Ocultar campos en access según hora

Se puede ocultar campos u objetos en access en función de la hora, ¿cómo se debería hacer?.

2 Respuestas

Respuesta
2

Por poder, sí se puede, siempre que tengas un formulario abierto en todo momento, para programar en él el evento "al cronómetro" y mostrar/ocultar lo que quieras en función de la hora. Además, la propiedad intervalo de cronómetro de ese formulario al tienes que establecer mínimo en 1000 (milisegundos=1 segundo) para que el código de "al cronómetro se ejecute cada segundo y compruebe las condiciones.

Un ejemplo: si quieres que el control txtUno se oculte entre las 10:30:00 y las 11:30:00, el código sería (en el evento que te indicaba)

Private Sub Form_Timer()
If #10:30:00#<Time<#11:30:00# Then
Me.txtUno.Visible=false
Else
Me.txtUno.Visible=true
End If
End Sub

una pregunta en lugar de ocultar lo puedo inhabilitar?

Si, claro que puedes, con la propiedad Enabled. O bloquearlo con Locked.

En definitiva, puedes modificar cualquier propiedad del control u objeto.

Respuesta
2

Yo pondría, en las propiedades del formulario, en eventos-Intervalo de cronómetro, por ejemplo, 30000 para que el evento Al cronómetro lo compruebe cada medio minuto, y en el evento al cronómetro

select case time()

case #14:07:00 pm#

nombrecliente.enabled=false

case #15:20:00 am#

nombrecliente.enabled=false

y así lo que quieras

case else

nombrecliente.enabled=true

end select

o bien

select case time(9

case #14:09:00#,#15:00:00#,#18:00:00#

...

En fin, si pudieras concretar cuanto tiempo quieres que este inhabilitado y más o menos a que horas quieres que sucede se podría concretar más.

Lo que quiero hacer es ocultar unos campos entre las 9:00 y las 14:00, y otros entre 16:00 y las 22:00

Yo pondría en Intervalo de cronómetro 1000 y luego en el evento Al cronómetro

If Time() >= #9:00:00 AM# And Time() <= #14:00:00 PM# Then
NombreCliente.Visible = False
Else
NombreCliente.Visible = True
End If

If Time() >= #16:00:00 PM# And Time() <= #22:00:00 PM# Then
direccion.Visible = False
Else
direccion.Visible = True
End If

Por cierto, me había olvidado. No puedes ocultar un control que tenga el enfoque, por eso sería conveniente que en el evento anterior antes del if pusieras, por ejemplo

Telefono. Setfocus

Siendo telefono uno de los controles que no se vean afectados por la instrucción.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas