Calculo en access

Tengo una BBDD en Access en la que tengo que hacer un cálculo. Os explico. Tengo los campos Entrega, Cantidad y PRECIOS CONTRATO. El campo entrega se duplica y necesito que me sume la multiplicación de cantidad y precios de contrato por cada código distinto del campo Entrega y eso se multiplique por una cantidad 0,5.
Hasta ahora lo he hecho en muchas partes y me gustaría saber si se puede hacer de una sola vez.
Yo lo he hecho con muchos pasos, lo primero he calculado el producto de CANTIDAD Y PRECIOS CONTRATO, a ese campo lo he llamado PRODUCTO, y luego he hecho una suma acumulada del campo producto en función de la ENTREGA y lo he multiplicado por esa cantidad, 0,5. Luego he hecho una consulta de vista diseño quedándome con el valor máximo. Y luego con otra consulta he añadido el resto de campos que me interesan.

1 respuesta

Respuesta
1
En el origen del control del campo:
=DSum("[cantidad]*[precios contrato]";"[NombreDeLaTabla]";"NombreDelCampo=Form!Entrega.value")
Me cuentas.
Muchas gracias por contestar tan pronto, lo he probado y me dice que la sintaxis no es válida. Te copio lo que he hecho.
He creado una consulta de vista diseño, he puesto la tabla y he marcado todos los campos que tiene y he escrito:
VALOR: DSuma("[cantidad]*[precios contrato]";"[TXT PREP PEDIDOS 1 A 40]";"VALOR=Form!Entrega.value")
Yo te lo he puesto para un cuadro de texto de un formulario ¿no lo tienes así?
No, que va yo solo tengo tablas y consultas, ya que no tengo que rellenar ningún campo, solo hacer consultas y cálculos con los datos de las tablas de la BBDD.
Un Saludo
Aunque no tengas que rellenar ningún campo los formularios también sirven para consultar y son bastante más prácticos. Por ejemplo la función que te he puesto (y otras muchas) solo sirve en formularios, en cuadros de texto, no en consultas.
Si lo quieres en consultas, efectivamente lo tendrás que hacer paso a paso... te aconsejo que pruebes con un formulario.
Si tienes problemas, no dudes en preguntarme e intentaré ayudarte.
Me cuentas, Angeles
Muchas gracias por tu ayuda, la verdad que tus consejos siempre me han servido de mucho. He hecho un autoformulario de hoja de datos con la tabla que necesito y añadido un cuadro de texto. En origen de datos he pegado tu fórmula, cambiando el nombre de la tabla por el nombre de mi tabla y en nombre de campo, el nombre que le he puesto al cuadro de texto. Te copio también.
=DSuma("[cantidad]*[precios contrato]";"TXT PREP PEDIDOS 1 A 40";"VALOR SEGURO=Form!Entrega.value")
Y en la columna resultante me sale #Error.
Un saludo.
Tanto en los nombres de los campos, como en los de tablas, cuando hay espacios por medio tienen que ir entre [ ]
=DSuma("[cantidad]*[precios contrato]";"[TXT PREP PEDIDOS 1 A 40]";"[VALOR SEGURO]=Form!Entrega.value")
Me cuentas.
Si, también probé con los corchetes, pero nada me sigue dando error. Que desesperación!
Me dices que en nombre del campo has puesto el nombre del cuadro de texto, el nombre del campo es el nombre del campo de la tabla que quieres igualar al valor del cuadro de texto Entrega.
Me cuentas.
En nombre de campo he puesto el nombre que le he puesto al cuadro de texto, y el nombre del campo del cuadro de texto, es un campo nuevo que tengo que crear que no está en la tabla.
Te detallo más: En la tabla original tengo:
Entrega Cantidad PRECIOS CONTRATO
123 1 0,18
123 3 0,78
234 5 0,56
234 4 0,18
Y lo que tengo que crear es un campo en el que me calcule por cada entrega lo siguiente: De la entrega 123 el valor de seguro es((1*0,18)+(3*0,78))*0,009.
Entrega valor seguro
123 0,02268
Supongo que lo de añadir la multiplicación a la fórmula que me indicaste seria
=(DSuma("[cantidad]*[precios contrato]";"[TXT PREP PEDIDOS 1 A 40]";"[VALOR SEGURO]=Form!Entrega.value"))*0,009
Un Saludo
Entonces sería:
En el origen del control del cuadro de texto Valor Seguro:
=(DSuma("[cantidad]*[precios contrato]";"[TXT PREP PEDIDOS 1 A 40]";"[Entrega]=Form!Entrega.value"))*0,009
Que el campo de la tabla se llame igual al cuadro de texto Entrega no pasa nada, ya que el cuadro de texto lo refieres al formulario.
Te explico la función DSuma()
DSuma("[NombreDelCampoASumar]";"[NombreTablaALaQuePertenece]";"condicion")
La condición en tú caso es que el campo de la tabla Entrega sea igual al valor del cuadro de texto Entrega.
Me cuentas.
PERFECTO! Funciona a la perfección, si te lo hubiera puesto al principio así estructurado no te habría vuelto loca.
De verdad muchíiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiisimas gracias. Y sobre todo lo que más me gusta es que me lo explicas para que lo aprenda.
Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas