Sumas en informes.

Y felices fiestas antes de nada...
Mi consulta es la siguiente:
Tengo un informe que contiene dos subinforme:
Ambos subinformes tienen un campo cantidad y otro precio.
En los dos subinformes he realizado la siguiente operación:
He creado en los dos subinformes un cuadro de texto independiente con la fórmula :
=[Cantidad]*[precio] y lo colocado en el pie de la pagina y me da perfectamente el resultado.
A continuación he hecho una suma del cuadro de texto creado colocándolo en el pie de los subinformes:
=Suma([Cantidad]*[precio]). Y tambien funciona perfectamente.
Desde el informe principal he recuperado los dos cuadros de texto de los subinformes y me funciona también...
El problema que tengo es que si uno de los dos subinformes esta vacío al realizar la suma me da error...
¿Sabrías por qué?

2 Respuestas

Respuesta
1
Porque al no poder realizar la operación, devuelve el valor Null, no el valor 0.
Puedes reescribir las fórmulas utilizando la función Nz («expr»; «valorsiesnulo»).
En expr pon las fórmulas y en la otra parte que valor quieres que adopte esa expresión si el resultado es null.
Feliz Año-
Hola de nuevo...
Muchas gracias de nuevo por tu ayuda.
He probado lo que me has comentado y continua dándome error...
¿Te importaría que te escribiera la fórmula que he puesto para que la vieras por si he cometido algún error?
Muchas gracias de nuevo.
Un Saludo. Feliz 2011
Claro.
Ponme la fórmula a ver que puede pasar.
Hola de nuevo...
Disculpa pero tuve una incidencia con ADSL.
Te cuento.
Tengo un cuadro de texto en un subinforme con la fórmula:
=[Subinforme Detalle_Presup].[Informe]![Texto29] y el cuadro de texto del subinforme tiene la formula:
=SiInm([Numero]<>0 Y [precio]<>0;Suma([Numero]*[Precio]);0)
Si existe un dato en el subinforme me pone una cantidad y funciona perfectamente y lo que deseo es que ademas de eso, si no existe un dato, en vez de devolverme #error me devuelva un cero. El motivo es que sumo varios subinformes y cuando uno de ellos esta vacío al devolverme #error, se corta la suma y todas las operaciones matemáticas que le sigan.
Muchas gracias por todo.
Prueba a ver si te funciona esto:
=Suma(Nz([Numero];0)*Nz([Precio];0))
Y me dices.
Hola de nuevo.
Muchas gracias por responder.
¿Lo pongo en un cuadro de texto del informe principal?
Saludos.
No. En el del subinforme, substituyendo a la fórmula SiInm(...)
Hola de nuevo...
La he puesto en un cuadro de texto me da #error.
De todas formas recuerda que la de siinm si que me funciona pero si recojo ese cuadro de texto desde el informe principal es cuando me da error cuando quiero de me de el cero si no existen datos.
Gracias de nuevo. Saludos.
Ok. Entonces a ver si funciona esto:
=Nz([Subinforme Detalle_Presup].[Informe]![Texto29];0)
En el cuadro del informe.
Hola de nuevo
Me vuelve a ocurrir lo mismo...
Con datos suma perfectamente, pero sin ellos me da #error.
¿Tendré algo mal en el subinforme?
Vaya. Si no funciona es porque el código de error se está generando no porque haya null (campo vacío), sino porque el resultado es erróneo. ¿Me puedes mandar la Bd?
[email protected]
Buenas tardes. Muchas gracias pr todo. Te mando la base de datos.
Te llegara desde Rogelio del Amo Sanchez.
Saludos.
El problema era que el segundo subinforme no llegaba a existir (porque los campos que los vinculan no eran iguales). De ese modo, intentaba buscar un control que ni siquiera había llegado a crearse y lo que daba no era Nulo (que fue mi equivocación al principio), sino Error porque no encontraba ese objeto.
Para salvar esto, basta con que utilices en los cuadros de texto una expresión como esta (te pongo la de Marruecos):
=SiInm(IsError([Subinforme Detalle_Presup_Res_Fact_Marr].[Informe]![Texto29]);0;[Subinforme Detalle_Presup_Res_Fact_Marr].[Informe]![Texto29])
Así, si la expresión da error, te pondrá 0, y si no, el valor.
Pruébalo, a ver si lo cazamos esta vez.
Buenas noches experto.
Funciona!
Muchas gracias por todo. Te estoy muy agradecido.
Como soy de Málaga, si pasas alguna vez por aquí que menos que invitarte a pescaditos. Así que avisame.
Un saludo.
Respuesta

I have no doubt that those who follow the instructions in the recipe will create some delicious and interesting drift boss

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas