Suma al pie de un formulario Campos calculados

Tengo un formulario que he de sumar los campos calculados al pie del mismo.

Como puedo hacerlo sin que me den error.

3

3 respuestas

Respuesta
2

Puedes hacerlo por VBA haciendo los cálculos y pasando el valor a los cuadros de texto del pie, o directamente en los cuadros del pie, pero en vez de sumar los nombres de loc campos calculados, suma las expresiones de cálculo.

Por ejemplo, si tienes estos dos campos calculados, llamados txtCalculado1 y txtCalculado2, con las expresiones: =[Importe1]*1.10  y =[Importe2]*1.21

en el cuadro del pie no hagas: =[txtCalculado1]+[txtCalculado2], sino: =[Importe1]*1.10 +[Importe2]*1.21

Sin que des más datos, no te puedo decir más

Tengo un Formulario con datos de una tabla y cada unos de ellos, en el pie del formulario, acumulo sus totales.

Este es el detalle de las operaciones que realizo para este Campo:

Hay un Campo calculado por cada línea llamado: BENEFICIOS

Calculo campo: BENEF

Benef=[PVP]/(1+([IVA]/100))-([PCompra])

Total Beneficios por cada Linea del Form

BENEFICIOS=Nz(([Benef])*([Unidades]);0)

En el pie del Form acumulo estos campos con esta suma:

=Suma((Nz([Benef])*([Unidades]);0))

He colocado lo que me me has comentado en el pie del formulario y me saca el valor del ultimo campo impreso en formulario continuo.

En el momento que le digo que sume me da el error en el campo al igual que al resto de campos existentes en el pie del formulario.

=Suma(Nz([Benef])*([Unidades]);0)

Si necesitas más detalles dímelo y te los envío. Un saludo

Pusiste :

=Suma(([PVP]/(1+([IVA]/100))-([PCompra]))*[unidades])

La última expresión la tienes mal, tendría que ser:

=Suma(nz(benef*unidades;0))

Nz() tiene 2 parámetros, suma() solo uno.

He colocado la expresión que me has comentado y me sigue dando el mismo error.

=Suma(Nz([Benef]*[Unidades];0))

Los corchetes me los coloca automáticamente

¿

Podría colocar una suma continuada para evitar ese error?. Como he de indicar al campo texto que acumula los totales que es una suma continuada, ¿o ha de ser otro tipo de campo?.

La expresión que te decía que probaras era ésta:

=Suma(([PVP]/(1+([IVA]/100))-([PCompra]))*[unidades])

La otra era para indicarte solamente que la tenías mal creada, pues le estabas pasando dos parámetros a una función que solo admite una.

Si no te funciona, sube una copia para echarle un vistazo, que igual terminamos antes...

Si no te importa, te preparo una copia del proceso, y la miras.

Dame una dirección para podértela mandar.

Envíamela (comprimida en rar o zip) a este correo: [email protected]

Te responderé por aquí, que ese correo es solo de entrada

Te he envido la BD a través de Wetransfer, si necesitas algo más dímelo y te lo mando

La solución era exactamente la que te decía: tienes que utilizar TODAS las expresiones que usas en los campos calculados en vez de los nombres de esos campos calculados.

Analicemos:

1º campo calculado:

Benef, con esta expresión: =[PVP]/(1+([IVA]/100))-([PCompra])

2º campo calculado:

Beneficios, con esta expresión: =Nz(([Benef])*([Unidades]);0)

Con esto, mi suposición en un principio era acertada:

Campo del pie del formulario: =Suma(([PVP]/(1+([IVA]/100))-([PCompra]))*Unidades)

¿Por qué da error? Pues sencillamente porque IVA es otro campo "calculado", solo que lo haces por VBA al cargar el formulario.

Por tanto, cambiándolo por la expresión de su cálculo, quedaría:

=Suma(([PVP]/(1+(DBúsq("IVA";"MAESTROIVA")/100))-([PCompra]))*[Unidades])

Que funciona perfectamente.

Respuesta
2

Jobe: Como un complemento a lo que dice Sveinbjorn, y suponiendo que en se trata de un Formulario "Continuo" en el que tienes los datos de un Campo Importe en un TextBox que se llame también Importe, en el pie, y lógicamente en un TexBox le pones:

=Suma(Nz([Importe];0))

Coincido con Sveinbjorn en que en esta pregunta no has gastado mucha tinta.

Mis saludos >> Jacinto

Me sigue dando un  error.

Este es el campo que he de acumuar al final del Formulario

Beneficios=Nz(([Benef])*([Unidades]);0)

Al pie del form utilizo esto:

TotalBenef=Suma(Nz([Beneficios];0))

Jobe: Solo has de poner lo que arriba te comentaba.

1.- Incorporar el cuadro de texto en el Pie de Formulario o SubFormulario "Continuo".

Interpreto que ya lo tienes y que se llama >> TotalBenef

En el Origen de Control de ese cuadro de Texto le pones directamente la Fómula>

=Suma(Nz([Beneficios];0))

A partir de aquí ya lo puedes llevar ese valor a cualquier sitio.

Mis saludos >> Jacinto

Respuesta
1

Es porque no se puede hacer eso... debes calcular el campo desde una consulta o desde la misma tabla... de lo contrario, no podrás sumarlos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas