Informe Access: Problemas con campo condicional

Tengo creado un informe para imprimir albaranes. Uno de los campos, que recoge la descripción del producto, quiero que sea condicional. Además del campo descripción, tengo un campo observaciones (texto) que no siempre tiene valores.

Mi intención es que si el campo Observaciones tiene algo, haga una concatenación entre el campo Descripción y Observaciones, si el campo Observaciones está vacío, muestre sólo el campo Descripción. He puesto un Cuadro de texto con el siguiente origen del control: =SiInm([Observaciones]="";[Descripcion];[Descripcion] & " - " & [Observaciones])

Sin embargo, siempre me toma la concatenación, haya datos o no en Observaciones, ya que si no hay valores en el campo observaciones pone el "-" seguido de la descripción. Me imagino que no está bien puesta la condición [Observaciones]=""

¿Cómo debo poner esta condición?

2 Respuestas

Respuesta
2

Una cosa es que el campo no tenga valor (es decir, que sea Nulo) y otra que tenga un valor y éste sea una cadena vacía (o sea "").

En tu caso como el campo es nulo y no una cadena vacía, no se cumple la condición y por tanto te pone el valor de la segunda parte.

Una forma de construir la expresión sería:

=SiInm([Observaciones] Es Nulo;[Descripcion];[Descripcion] & " - " & [Observaciones])

Y si quieres controlar, además del Nulo la cadena vacía, puedes usar la función Nz() para convertir los nulos a cadenas vacías, así;

=SiInm(Nz([Observaciones];"")="";[Descripcion];[Descripcion] & " - " & [Observaciones])

Saludos!


Respuesta
2

Tienes otra forma, que es usar código. En el evento al dar formato de la sección del informe donde estén los cuadros de texto puedes poner

If IsNull([Observaciones]) Then
Texto7 = Descripcion
Else
Texto7 = [Descripcion] & " - " & [Observaciones]
End If

Así, si observaciones no tiene datos

Que tiene datos

No es necesario que se "vean" los cuadros de texto Descripcion y Observaciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas