Etiquetas visible según valor campo informe.

Tengo un informe con unos datos numéricos de un análisis. Quiero hacer que cuando el valor del análisis sea superior al legal me aparezca un * junto al dato.
Para ello he creado una etiqueta ASTERISCO que se refiere al dato, pongamos, "valor" y que por defecto no está visible.
El código que he añadido es análogo a uno que utilizo en un formulario y que aprendí en esta web. En el evento "al activar registro" de las propiedades del informe incluyo:
Me. Refresh
If Me.valor >= 1200 then
Me.ASTERISCO.visible = true
else
Me.ASTERISCO.visible = false
End if
Pero no me funciona, no me sale nada. ¿Cuál es mi error? ¿Es por qué debe ser alguna propiedad de "valor"? ¿Es por el tipo de dato (me he fijado en que sea numérico)?
Supongo que esto es fácil para usted, así que incluyo mi siguiente reto...
Tengo campos en los cuales el valor analítico mínimo que debo expresar no es un número, es texto con formato: "<0.01". Este sería el único valor de texto con números que encontraríamos (con lo que -idea- si coincide puede usarse para finalizar el "if"). El resto de los valores de este campo serían números en un campo forzosamente de texto. Ejemplo: 20, 154, 0.8, <0.01, 11, 5, <0.01.
¿Podría comparar números con este campo para el tema de poner los asteriscos o tengo a la fuerza que tener un campo numérico para este fin?

1 Respuesta

Respuesta
1
Creo que no puedes utilizar "al activar registro" en un informe. En cualquier caso puedes probar con el evento "al dar formato" de la sección dónde se encuentre el control.
Como alternativa te sugeriría un cuadro de texto en lugar de una etiqueta (sin bordes ni fondo) y que, mediante el formato condicional, "mostrara" su valor (se trataría de jugar con que el color del texto fuera distinto al fondo en la condición adecuada)
La segunda parte no la he entendido.
Xavi
Muchas gracias, llodax.
La forma que me has comentado de ponerlo "al dar formato" me ha funcionado, sólo he tenido que quitarle el refresh.
En cuanto a la segunda parte de mi pregunta, espero que seas tan amable de aclararármela.
Me estaba adelantando a un obstáculo que esperaba tener (aunque no de esta manera).
Hay parámetros para los cuales no puedo dar como valor el cero absoluto, así que doy como valor una expresión del tipo "<0.01". Si establezco un criterio en el if para que salga el asterisco con valores >=0.5 (por poner un ejemplo), funciona de maravilla mientras se encuentre un número, a saber: sale el asterisco con el 0.6 y no sale con el 0.3. Pero si se encuentra esta expresión "<0.01", SÍ que sale y no debería de salir. ¿Cómo hago para que cuando encuentre esta expresión siga con el If y no salga el *?
If Me.Valor ="<0.01" or Me.Valor >=0.5 then
me.asterisco.visible =true 
 else
me.asterisco.visible =false
end if
Por simplificar, he probado esto:
If Me.Valor = "<0.01" then
me.asterisco.visible = false
else 
me.asterisco.visible = true
end if 
... y tampoco me sale. Con y sin comillas.
Por favor, ayuda.
Muchas gracias de antemano.
Me contesto yo, por si alguien llega aquí.
Estas expresiones son muy caprichosas. Me di cuenta de que poniendo el número entre comillas, de esta forma:
If Me.Valor < "15" ...
Funcionaba aparentemente bien incluso cuando se encontraba una expresión "<5". Pero digo "aparentemente".
Me encontré con que no funcionaba con números grandes, concretamente aquellos entre el 100 y el 149. Es decir, el access da por <"15" estos números.
Esto fue la locura de complicaciones y ensayo y error.
Finalmente dí con una expresión que se ajustaba perfecto a lo que quiero:
If Me.Valor < 15 and Me.Valor > 1000 then ....
Donde 1000 es un número muy grande. Es decir, si se le da un intervalo, access entiende que la expresión "<X.XX" está fuera de ese intervalo y no sale el asterisco o lo que sea, que era mi problema.
Un saludo y gracias por tu primera respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas