Sumar en formulario de Access con Dsum

Necesito por favor me colaboren en lo siguiente: tengo una consulta basada en varias tablas, la consulta me permite ver varios registros que corresponden a trabajos realizados por una o varias personas. Ejemplo:

cuadrilla                                                       oficio                 cantidad     valor          operarios

luis perez-alejandro gomez-marcos doria     excavacion             5            9000            3

luis perez-alejandro gomez-marcos doria     rotura                     5            12000          3

mario villanueva-felipe gongora                    excavacion             4            4000            2

mario villanueva-felipe gongora                    rotura                     3            6000            2

Necesito crear un formulario en el cual un cuadro de texto me sume los valores correspondientes a cada operario, por ejemplo: luis perez ...= $7.000

alejandro gomez...$ 7.000

marcos doria...$ 7.000

mario villanueva............$5.000

Felipe gongora...$5.000 probé con Dsum pero me arroja error... En excel lo hago y me da el resultado esperado...

2 respuestas

Respuesta
3

Me han recomendado esta pregunta y aquí va mi posible solución al problema.

Antes de nada, indicar una condición previa para que funcione: tienes que tener una tabla en la que recojas los nombres de los trabajadores.

El procedimiento es el siguiente:

1º/ Creas una consulta sobre la tabla con los nombres de los trabajadores, y seleccionas el campo NombreTrabajador (o como sea que tu lo llames)

2º/ En la siguiente columna, vamos a crear el cálculo del importe, escribiendo esta fórmula en la fila Campo:

Total: CMoneda(DSuma("[valor]/[operarios]";"TCuadrillas";"[cuadrilla] LIKE '*" & [Nombre] & "*'"))

Total es el nombre que va a tener el nuevo campo, se lo puedes cambiar por el que más te guste. CMoneda() es para convertir el resultado en formato moneda, se lo puedes quitar si prefieres.

TCuadrillas es el nombre que le puse yo a la tabla/consulta, tendrás que cambiarlo por el que tu tengas, y lo mismo los nombres de los campos, si no coinciden

3º/ Guardas la consulta, y te creas el formulario sobre ella, y ya lo tienes.

Te subo un mini-ejemplo para que lo veas en la práctica, teniendo en cuenta que yo en vez de una consulta uso una tabla, pero el funcionamiento es el mismo: http://filebig.net/files/DAwpsHyYQu

Hola, mil gracias por su interés y respuesta. De hecho el ejemplo que me envió funciona a la perfección. Hice los cambios pero sin embargo al aplicarlo a mi base de datos, no me arroja el resultado correcto. Esta es la función que hice TotalNoml: CMoneda(DSuma("([Total]/[Numope])","CNomina","[CuadrillaMov] LIKE '*" & [Nomboperario] & "*'")) hay una diferencia con su ejemplo y es que el número de operarios me aparece en la consulta porque lo obtengo de otra tabla. CuadrillaMov es el nombre de mi consulta, en la consulta tengo un campo Total que resulta de multiplicar el precio por la cantidad. Usted disculpe pero de ser posible podría hacerle la consulta a su correo y enviarle un ejemplo, por esta vez.   Agradezco su colaboración.

No dices cual es el problema por el que no te funciona, o si te da algún error...

De todas formas, un par de cosas:
.- Si CuadrillaMov es el nombre de tu consulta, ¿qué es CNomina?

.- Si realmente CuadrillaMov es el nombre de la consulta y no de un campo de la misma, debe ir donde pones CNomina.

.- Si el campo Total es calculado en la propia consulta, en la función tienes que cambiarlo por la misma operación, para que no te de error, por ejemplo:

TotalNoml: CMoneda(DSuma("([Precio]*[Cantidad]/[Numope])","CNomina","[CuadrillaMov] LIKE '*" & [Nomboperario] & "*'"))

Por último, si me quieres mandar un ejemplo con tu BD, puedes hacerlo subiendolo a cualquier servidor gratuito (tipo dropbox) o web de intercambio de archivos (tipo filebig.net), y me pones aquí el enlace de descarga que te generan. Lo siento, pero no me gusta dar el correo públicamente.

Respuesta
1

Deseo ayudarte pero no entiendo lo que pides, en el caso de Luis Perez el posee, 5 en cantidad, 9,000 en valor y 3 en operarios, como es que llegas a 7,000 como resultado, ¿cuál calculo es el que estas haciendo?

Podrías indicame.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas