¿Cómo puedo totalizar todos los campos calculados de subformulario en el formulario principal?

Tengo un formulario principal con los datos de la factura generales y un subformulario con el detalle de la factura.

En cada línea de detalle se calcula con campos calculados el importe total de cada producto y quiero que en formulario principal me vaya indicando el importe total de la factura a medida que introduzco artículos en el detalle.

Para ello cree otro campo calculado al que llamé TOTALFRA y en el origen del control, mediante el generador de expresiones le pongo lo siguiente: =Suma([Consulta productos Subformulario].[Formulario]![TOTAL])  Ésto me devuelve #Error y no soy capaz de conseguirlo.

Por favor, ¿alguien me puede indicar a qué se debe éste error y cómo puedo solucionarlo? A ser posible sin código. Adjunto imagen. Muchas gracias.

2 respuestas

Respuesta
2

Pon un cuadro de texto independiente en tu subformulario, llámalo txtTotal y como Origen le pones: =Suma(TOTAL)

Este cuadro de texto lo puedes poner oculto (Propiedad Visible=No)

Al cuadro de texto independiente del formulario principal, le cambias el origen a: =[Consulta productos Subformulario].[Formulario]!txtTotal

Tendría que funcionarte.

Un saludo.


Muchísimas gracias por la respuesta y por la rapidez. He probado a realizar la suma en el pie del subformulario, siguiendo tus indicaciones pero sigo obteniendo el mismo error.

Te adjunto captura.

Se te olvidó mencionar que tu TOTAL es un campo independiente cuyo origen es un cálculo, y esa es una información importante.

Si pones visible el campo del subformulario, lo más probable es que te muestre #error

Si estoy en lo cierto, debes cambiar la fórmula y en vez de sumar directamente el campo independiente calculado, has de hacer la suma de la expresión, es decir, si tu campo TOTAL se calcula como: =Subtotal-Descuento, el campo del pie del subformulario será: =Suma(Subtotal-Descuento)

Te dejo un ejemplo de hace unos años, modificado "a lo bruto" para añadirle una suma sobre un campo calculado: https://www.dropbox.com/s/qher6cwxeluuhjq/EjemploTE.accdb?dl=0 

Respuesta
1

Supongamos que los formularios se llaman Factura y DetalleFactura y que están relacionados por el IdFactura. En el subformulario, en el cuadro de texto IVA(por ejemplo, aunque los cálculos los haría en el campo Cantidad), en sus propiedades-eventos-al recibir el enfoque, pondría

IVA =(subtotal-descuentos)*21/100

Total=subtotal-descuentos+iva

docmd.runcommand accmdsaverecord

me.parent!TotalFactura=dsum("total","detallefactura","idfactura=forms!facturas!idfactura")

Así, a medida que vayas poniendo productos, en el campo TotalFactura del formulario te irá poniendo el valor acumulado.

Lo del cálculo del IVA va en función de donde hagas el descuento

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas