Informe access 2010 sumar datos de dos columnas.

Tengo una tabla con 2 campos, puerto1 y puerto 2, donde se cargan mercancias, los buques pueden utilizar el puerto 1 o puerto2 para cargar, necesito sumar la cantidad de mercancias cargada en cada puerto no importando cuando ha sido en posicion 1 o 2 por ejemplo:
Puerto 1 cartagenas -2000 ton
Amberes - 3000 ton
Santiago - 2000 ton
Puerto 2 amberes - 3000 ton
Cartagenas - 3000 ton
Santiago - 10000 ton
Es decir como logar sumar para obtener por ejemplo, cartagena 5000 ton.

2 respuestas

Respuesta
2

Suponiendo que tu tabla sea como la de la imagen:

Puedes hacerlo de dos formas:

1º/ Añades un cuadro de texto con esta expresión (para Cartagenas):

=DSuma("ton1";"TPuertos";"Puerto1='Cartagenas'")+DSuma("ton2";"TPuertos";"Puerto2='Cartagenas'")

Y harías lo mismo para los otros puertos.

2º/ Creas una consulta de union para unificar los 4 campos en 2, es decir, creas una consulta en vista SQL con esta expresión (tendrás que adaptarla a los nombres que tu tengas):

SELECT TPuertos.Puerto1 AS Puerto, TPuertos.ton1 AS ton
FROM TPuertos
UNION ALL
SELECT TPuertos.Puerto2 AS Puerto, TPuertos.ton2 AS ton
FROM TPuertos;

Y luego haces una consulta de totales, agrupando por Puerto y sumando por ton, y haces el informe sobre esta consulta, o bien en tu informe original recuperas estos valores con la función DBúsq().

Un saludo.


Muchas gracias, pruebo y le digo algo.

¿Solucionaste?

Respuesta
1

Crea un cuadro de texto en tu informe en el origen del control algo así:

=Suma([Nombre de la columna que quieres sumar])

por ejemplo

En la imagen sumo lo las columnas de subtotal, descuentos e impuestos

Muchas Gracias, pero ud, no me ha entendido, no es sumar las columnas, es que dentro de las columnas hay elementos que necesito sus totales, la base es así

Puerto 1 ton Puerto2 ton

Cartagenas 2000 Barranquilla 3000

Barranquilla 1000 Amberes 2000

Santiago 8000 Cartagenas 15000

El resultado que quiero es así:

Cargada por puertos:

cartagenas 17 000 tons

Barranquilla 4000 tons

Santiago 8000 tons

Amberes             2000 tons

Sera complicado, me estas diciendo que tienes ¿el nombre y las toneladas en un mismo campo de la tabla? Con una consulta no se podrá con un formulario tienes que usar la siguiente función Mid (función) para sacar el numero después convertirlo a numero con la siguiente función CInt ( expresión ) y esto se tendrá que hacer con cada campo de la tabla y lo cual es imposible ya que las toneladas pueden variar .

Te aconsejo que separes la mercancía con del nombre, esto te ayudara mucho

El nombre y las toneladas no están en un mismo campo te muestro la tabla

Espero lo pueda ver ahora más claro.

Desde ya muchas gracias.

Ahora ya entiendo.

Crea un cuadro de texto en tu informe en el origen del control pones lo siguiente:

=DSuma("[cargapto1]","Buques","[puerto1]='Cartagenas'")+DSuma("[cargapto2]","Buques","[puerto2]='Cartagenas'")

Ojo suponiendo que puerto 1 y puerto sean texto pero al ver tu tabla, en lugar de cartagenas pones el numero que le corresponde a cartagenas por ejemplo:

=DSuma("[cargapto1]","Buques","[puerto1]=1")+DSuma("[cargapto2]","Buques","[puerto2]=1")

suponiendo que cartagenas tenga sea el 1.

El corrector me cambia lo que escribo :D

Crea un cuadro de texto en tu informe, en las propiedades del cuadro de texto en la propiedad origen del control pones lo siguiente:

=DSuma("[cargapto1]","Buques","[puerto1]='Cartagenas'")+DSuma("[cargapto2]","Buques","[puerto2]='Cartagenas'")

Ojo suponiendo que puerto1 y puerto2 sean campo de tipo texto pero al ver tu tabla, en lugar de texto es numero  suponiendo que cartagenas le corresponde el numero 1 pones lo siguiente: 

=DSuma("[cargapto1]","Buques","[puerto1]=1")+DSuma("[cargapto2]","Buques","[puerto2]=1")

Si no es el uno pues le pones el que le corresponde, así mismo tendrás que hacer para cada puerto que tengas.

Puerto no es un numero es que lo selecciono por busqueda de una tabla que se llama puertos. Lo que no quiero es especificar el nombre del puerto es decir, que imprima segun el nombre que encuentre en la base de datos. Muchas gracias.

Explícame mejor esta linea " que imprima según el nombre que encuentre en la base de datos",

Y yo dijo que puerto si es un numero, supongo que ese campo lo llenas con un cuadro combinado, que tiene de origen de fila la tabla puertos. Tal vez salga el nombre del puerto pero tu campo esta declarado como entero y el las propiedades del campo puerto1 o puerto2 esta como columna dependiente la 1 osea el ID del puerto por eso almacena el numero del puerto.

Si quieres mándame tu base al correo

[email protected]

Pero explícame detalladamente que quieres que se imprima en tu reporte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas