Sumar en un informe con una condición

Soy nuevo en access y tengo un problemilla, he creado un informe que me devuelve los datos de una consulta, funciona bien, el problema es que quiero que uno de los campos llamado toneladas me sume el resultado siempre y cuando sea mayor que 18 he probado en origen de control poniendo =suma([tn]) where ([Tn])>18 pero me suprime el where y me suma todo. ¿Qué puedo hacer?
1

1 Respuesta

194.625 pts. 20años de experiencia en programacion Access a razon de...
Primero el porque no funciona: porque te lo estas inventando. La sunción Suma no funciona así.
Intentalo con una función agregada de dominio: DSuma.
=DSuma("tn"; "consultabasedelformulario"; "tn>18")
Revisa la ayuda de DSuma para más información.
Un saludo
http://www.aesoft-databases.com
Hola, ante todo gracias por la rapidez.
No me funciona, seguramente lo haré mal. Te explico:
Lo he hecho de dos maneras, primero en el formulario he creado un cuadro de texto he abierto la hoja propiedades y en origen del control pongo la fórmula que tu me das, =DSUMA("[Tn];"produccioncamiones";"[Tn]>18") me devuelve espacio en blanco y al abrir la hoja de propiedades la fórmula ha desaparecido.
La otra forma que he probado es en agrupar crear un suma total de Tn, si la ejecuto me suma el detalle del formulario tal como lo tengo agrupado por fecha, a continuación me sitúo en ese campo y en hojas de propiedades modifico el origen del control con la fórmula dada por ti, tal como te pongo arriba el resultado es error.
¿Qué puedo hacer?
Gracias
Otra forma de hacerlo seria utilizando un control oculto en el detalle que solo mostrara el valor cuando las tn son > 18. Es un simple cuadro calculado, la suma del cual podrías poner en el pie del informe.
Puedes aclarame un poco más no entiendo bien donde poner el cuadro calculado y como.
Añade un cuadro de texto en el detalle (dónde ya tienes un cuadro que muestra las toneladas). Llamalo TnMas18
En el origen del control pones esto:
=SiInm([Tn]>18;[Tn];0)
Eso mostrará las toneladas si estas son superiores a 18.
Ahora pones un cuadro de texto en el pié que sume ese cuadro de texto:
=Suma([TnMas18])
Si todo salñe bien, pon la propiedad visible del TnMas18 a No y listo.
Xavi
Pongo lo que me dices pero me da error en todas las lineas
Verifica que tienes un control llamado Tn. Utiliza el generador de expresiones.
Hola, las lineas de detalle salen perfectas y el menor de 18 lo pone a cero, el problema es que en el pie le pongo que sume tal como me dices y me pide que introduzca el parámetro.
Mmmm. Vamos a probar una cosa que no se si funcionará, pero es que las sumas condicionales en los informes siempre me han dado problemas. Ademas, el no poder sumar campos calculados puede ser un problema. Intenta que el origen del control del cuadro de texto del pie del informe sea así:
=Suma(SiInm([Tn]>18;[Tn];0))
Es un invento, pero por probar que no quede.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas