Textbox según valores de distintos checkbox

Amig@s. Os explico, tengo un formulario en access donde quiero,
según si este marcado un checkbox u otro, mostrar un texto u otro.
Me explico, tengo los campos booleanos "Activo" "enTramite" "caducado" etc,
i me gustaría en el form tener un textbox que mostrara el texto tipo ACTIVO,
EN TRAMITE, etc He creado código en el evento "Form_Open" del tipo:
If Me.Actiu = True Then
Estat = "ACTIU" 'Estat" es el nombre del textbox
ElseIf Me.EnTramit = True
Then Estat = "EN TRAMIT"
El problema que tengo es que el resultado de esto es que el textbox
del formulario me muestra el mismo valor para todos los registros.
¿Cómo puedo solucionarlo?

1 Respuesta

Respuesta
2
En lugar del evento Open, utiliza el Current (al activar registro)
Primero de todo muchas gracias por la respuesta Xavi, he modificado el evento y lo he puesto Form_Current(), pero me sigue apareciendo el mismo valor en todos los textbox (el valor del último registro que lee, o que se activa).
El form está en visata "Formularios continuos", de manera que me sale el textbox tantas veces como registros hay en la consulta a la que va ligado.
Si se te ocurre alguna solución, o necesitas más información sobre el problema, aquí estoy.
De nuevo, gracias
Vale. Si es un formulario continuo es un efecto, digamos, normal. No podrás hacerlo por código. Las opciones pasan por condicionales.
Prueba a modificar el origen del control del cuadro de texto por este:
=SiInm([Actiu]=-1;"ACTIU";"EN TRAMIT")
Y elimina el código que tienes puesto.
Xavi así me funciona perfectamente, pero al tener más de dos campos he tenido que hacer una chapuza del estilo:
=SiInm([Actiu]=-1;"ACTIU";"") & SiInm([En Tramit]=-1;"En Tramit";"") & SiInm([Anulat]=-1;"ANULAT";"") & SiInm([En Tramit BO]=-1;"En Tramit BO";"")
¿Se te ocurre una manera más "limpia"?
Perdona por la impertinencia, pero espero que con esto ya te deje en paz! Je je Aunque ya me has solucionado el problema.
Una vez más, muchísimas gracias :)
Martí
Me falta saber si los 4 estados son excluyentes. Me explico: si solo debe aparecer uno de los 4 textos (o nada)
Si ese es el caso, se trata de anidar los SiInm
=SiInm([Actiu]=-1;"ACTIU";SiInm([En Tramit]=-1;"En Tramit";SiInm([Anulat]=-1"ANULAT";SiInm([En Tramit BO]=-1;"En Tramit BO";""))))
Lo que me gustaría que aprendieras de esto es el porqué funciona. Te recomiendo que mires en la ayuda (si no lo has hecho ya) la función SiInm para entenderla.
Xavi
Si, ya conocía la función SiInm, pero no había pensado en que podía ponerle otra SiInm como respuesta al "False" de una.
Muchísimas gracias, de verdad, y no sólo por esta respuesta, si no por el altruismo de compartir conocimientos. :)
Nos vemos en www.llodax.com ^^

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas