Access - Requerir campo si la casilla de verificación está activada

 
Vista:
sin imagen de perfil

Requerir campo si la casilla de verificación está activada

Publicado por Dani (3 intervenciones) el 06/05/2016 12:44:11
Hola,
Tengo dos campos, una casilla de verificación (Nombre = Cobrado) y un campo de fecha (Nombre = FechaCobro). Necesito que el campo FechaCobro se active y sea requerido sólo si el campo Cobrado es cierto. ¿Cómo puedo hacerlo?
Muchas gracias,

Dani
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Requerir campo si la casilla de verificación está activada

Publicado por Enrique Heliodoro (1664 intervenciones) el 07/05/2016 01:37:12
Activar el campo de fecha, dependerá de como se le adjudique el valor a la casilla de verificación (y se puede hacer con una macro .... mas sencillo no lo encontraras).

Que se 'requiera' ese dato, habrá que verificarlo antes de grabar el registro (la existencia de la marca) y según sea el caso obrar en consecuencia
.- si hay fecha : continuar
.- si no la hay: abortar la acción y enviar el foco al objeto

Opcionalmente se puede utilizar el evento Exit del objeto para exigir la fecha (pero solo se sale si se entra y si esta invisible no puede recibir el foco).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Requerir campo si la casilla de verificación está activada

Publicado por Quatropelos (7 intervenciones) el 07/05/2016 14:55:51
En el evento al hacer click del check cobrado yo pondria este código:
1
2
3
4
5
6
7
8
9
10
Dim cobrado as string
Cobrado = msgbox ("Ha cobrado este recibo ?", vbyesno + vbqüestion,"Recibo cobrado")
If cobrado=6 then
Me.nombre=true
Me.fechacobro.visible=true
Docmd.gotocontrol "fechacobro"
Else
Me.nombre=false
Me.fechacobro.visible=false
End if

Luego, en el evento "al cerrar" del formulario si sales con la "x" pondria el siguiente:

1
2
3
4
5
6
7
8
If nombre=true and (isnull(me.fechacobro) or me.fechacobro="") then
Msgbox "Indique la fecha de cobro",vbcritical,"Fecha de cobor vacia"
Me.fechacobro.backcolor=vbred
Docmd.gotocontrol "fechacobro"
Exit sub
Else
Docmd.close
End if

Yo suelo usar botones para cerrar los formularios, por eso te pongo docmd.close, si lo haces desde la "x" despues de "exit sub" pones End if y listo, de lo contrario este codigo lo tienes que poner el el evento "al hacer click" del boton que uses para salir.

Obviamente faltan los tratamientos de error que ya los ingenias tu, en funcion de lo que quieras.

Los mensajes de los msgbox los puedes personalizar como tu veas.

Espero que te sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar