Discussion:
¿como se puede calcular un acumulado en una consulta de Access?
(demasiado antiguo para responder)
Gallego
2007-04-20 07:50:01 UTC
Permalink
tengo una consulta que tiene los siguientes campos:
- fecha
- cantidad ingresada


Y quiero obtener una tabla donde me vaya dando a cada fecha el acumulado.

Ejemplo
Consulta 1
Fecha Cantidad
1-1-07 100
2-1-07 200
5-1-07 500

Y lo que debería darme es:
Resultado
Fecha Acumulado
1-1-07 100
2-1-07 300
5-1-07 800

¿Sabe alguien como se hace esto?
Ju@nK
2007-04-20 14:00:26 UTC
Permalink
En un informe con Suma Continua, en un formulario o consulta con una de las
funciones agregadas de dominio, pero depende donde lo pongas, pues tienes
que darle la ruta del control, si es un formulario ej.

=dsum("[cantidad ingresada]";"TuTabla";"[fecha] <= #" &
forms!TuFormulario!Fecha & "#")

o en código

=dsum("[cantidad ingresada]","TuTabla","[fecha] <= #" & me.Fecha & "#")
--
--
**
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.

Salu2
***@nK [MVP Access] [DCE2003 ***] + VSTO [DCE2005 **]
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com

Nota: El contenido de este mensaje, así como el código
fuente que pueda ir incluido en el mismo, se proporciona
«COMO ESTÁ», sin garantías de ninguna clase, y no otorga
derecho alguno. Usted asume cualquier riesgo al poner en
práctica, utilizar o ejecutar la sugerencia del presente mensaje.
**
Post by Gallego
- fecha
- cantidad ingresada
Y quiero obtener una tabla donde me vaya dando a cada fecha el acumulado.
Ejemplo
Consulta 1
Fecha Cantidad
1-1-07 100
2-1-07 200
5-1-07 500
Resultado
Fecha Acumulado
1-1-07 100
2-1-07 300
5-1-07 800
¿Sabe alguien como se hace esto?
GRIEGO59
2007-06-24 18:23:00 UTC
Permalink
Estoy tratando de usar esta expresión pero obtengo el mismo total en cada
registro, es decir, que no se va acumulando registro por registro, que estaré
haciendo mal?

Probé así
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <= " &
[Formularios]![compras]![IdProveedor] & "")

y así:
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <=
Formularios![compras]![IdProveedor] ")

Gracias de antemano
GRIEGO59
Post by ***@nK
En un informe con Suma Continua, en un formulario o consulta con una de las
funciones agregadas de dominio, pero depende donde lo pongas, pues tienes
que darle la ruta del control, si es un formulario ej.
=dsum("[cantidad ingresada]";"TuTabla";"[fecha] <= #" &
forms!TuFormulario!Fecha & "#")
o en código
=dsum("[cantidad ingresada]","TuTabla","[fecha] <= #" & me.Fecha & "#")
--
--
**
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.
Salu2
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com
Nota: El contenido de este mensaje, así como el código
fuente que pueda ir incluido en el mismo, se proporciona
«COMO ESTÁ», sin garantías de ninguna clase, y no otorga
derecho alguno. Usted asume cualquier riesgo al poner en
práctica, utilizar o ejecutar la sugerencia del presente mensaje.
**
Post by Gallego
- fecha
- cantidad ingresada
Y quiero obtener una tabla donde me vaya dando a cada fecha el acumulado.
Ejemplo
Consulta 1
Fecha Cantidad
1-1-07 100
2-1-07 200
5-1-07 500
Resultado
Fecha Acumulado
1-1-07 100
2-1-07 300
5-1-07 800
¿Sabe alguien como se hace esto?
Javier Terán González
2007-06-24 21:14:06 UTC
Permalink
¿IDProveedor que tipo de datos es??

Si es númerico yo creo que te debería de funcionar.
Si es un texto puedes probar con comilla simple antes y después del
proveedor

=DSuma("[Monto]","[Proveedores]","[IdProveedor] <= '" &
[Formularios]![compras]![IdProveedor] & "'")

Un saludo.
Post by GRIEGO59
Estoy tratando de usar esta expresión pero obtengo el mismo total en cada
registro, es decir, que no se va acumulando registro por registro, que estaré
haciendo mal?
Probé así
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <= " &
[Formularios]![compras]![IdProveedor] & "")
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <=
Formularios![compras]![IdProveedor] ")
Gracias de antemano
GRIEGO59
Post by ***@nK
En un informe con Suma Continua, en un formulario o consulta con una de las
funciones agregadas de dominio, pero depende donde lo pongas, pues tienes
que darle la ruta del control, si es un formulario ej.
=dsum("[cantidad ingresada]";"TuTabla";"[fecha] <= #" &
forms!TuFormulario!Fecha & "#")
o en código
=dsum("[cantidad ingresada]","TuTabla","[fecha] <= #" & me.Fecha & "#")
--
--
**
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.
Salu2
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com
Nota: El contenido de este mensaje, así como el código
fuente que pueda ir incluido en el mismo, se proporciona
«COMO ESTÁ», sin garantías de ninguna clase, y no otorga
derecho alguno. Usted asume cualquier riesgo al poner en
práctica, utilizar o ejecutar la sugerencia del presente mensaje.
**
Post by Gallego
- fecha
- cantidad ingresada
Y quiero obtener una tabla donde me vaya dando a cada fecha el acumulado.
Ejemplo
Consulta 1
Fecha Cantidad
1-1-07 100
2-1-07 200
5-1-07 500
Resultado
Fecha Acumulado
1-1-07 100
2-1-07 300
5-1-07 800
¿Sabe alguien como se hace esto?
Chea
2007-06-24 21:47:06 UTC
Permalink
Te estás complicando la vida.

En los controles de los informes existe la propiedad suma contínua. No
tienes más que crear un cuadro de texto cuyo origen sea Monto y cuya
propiedad "Suma contínua" sea "Sobre todo" o "Sobre grupo".
--
Saludos

José Bengoechea Ibaceta [MS-MVP Access]
http://jbengoechea.com/
Post by GRIEGO59
Estoy tratando de usar esta expresión pero obtengo el mismo total en cada
registro, es decir, que no se va acumulando registro por registro, que estaré
haciendo mal?
Probé así
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <= " &
[Formularios]![compras]![IdProveedor] & "")
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <=
Formularios![compras]![IdProveedor] ")
Gracias de antemano
GRIEGO59
Post by ***@nK
En un informe con Suma Continua, en un formulario o consulta con una de las
funciones agregadas de dominio, pero depende donde lo pongas, pues tienes
que darle la ruta del control, si es un formulario ej.
=dsum("[cantidad ingresada]";"TuTabla";"[fecha] <= #" &
forms!TuFormulario!Fecha & "#")
o en código
=dsum("[cantidad ingresada]","TuTabla","[fecha] <= #" & me.Fecha & "#")
--
--
**
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.
Salu2
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com
Nota: El contenido de este mensaje, así como el código
fuente que pueda ir incluido en el mismo, se proporciona
«COMO ESTÁ», sin garantías de ninguna clase, y no otorga
derecho alguno. Usted asume cualquier riesgo al poner en
práctica, utilizar o ejecutar la sugerencia del presente mensaje.
**
Post by Gallego
- fecha
- cantidad ingresada
Y quiero obtener una tabla donde me vaya dando a cada fecha el acumulado.
Ejemplo
Consulta 1
Fecha Cantidad
1-1-07 100
2-1-07 200
5-1-07 500
Resultado
Fecha Acumulado
1-1-07 100
2-1-07 300
5-1-07 800
¿Sabe alguien como se hace esto?
GRIEGO59
2007-06-25 00:50:00 UTC
Permalink
Gracias por las respuestas
Voy a probar con lo de las comillas a ver que tal me va.
Necesito que sea en un formulario porque en base a los resultados de esa
suma continua de monto debo realizar un cálculo de intereses y luego en
función al resultado obtenido en el cálculo de intereses debo ingresar un
dato al registro en el formulario.
Puedo preguntarles por qué a veces usan los signos " , & , # . He notado que
el # lo usan antes y después de las fechas.
GRIEGO59
Javier Terán González
2007-06-25 11:46:18 UTC
Permalink
& para concatenar cadenas. Si las cadenas van entre comillas es un texto
fijo, si no, es una variable a calcular.
" yo " & "tengo" & "el poder" --> yo tengoel poder

# para que el access reconozca que es una fecha
"[fechainicio] = #" & me.txtfechainicio & "#"

' comilla simple cuando la variable es un char en la BBDD

* Utilizado en las consultas LIKE o COMO
"[nombre] like '" & me.txtnombre & "*'" --> todos los nombre
que empiecen por lo que hay en el campo
(en sqlserver es %)


sin nada cuando en la base de datos es un número, un autonumérico..

Todo es SQL. Encima el SQL del access y del SQL Server por ejemplo es
distinto, así que cuidado.
Un saludo
Post by GRIEGO59
Gracias por las respuestas
Voy a probar con lo de las comillas a ver que tal me va.
Necesito que sea en un formulario porque en base a los resultados de esa
suma continua de monto debo realizar un cálculo de intereses y luego en
función al resultado obtenido en el cálculo de intereses debo ingresar un
dato al registro en el formulario.
Puedo preguntarles por qué a veces usan los signos " , & , # . He notado que
el # lo usan antes y después de las fechas.
GRIEGO59
GRIEGO59
2007-06-26 15:53:01 UTC
Permalink
Hola
Gracias por la respuesta, pero así como lo propones me da:

#Error

Por los momentos con las formulas que estoy probando:

=DSuma("[Monto]","[Proveedores]","[IdProveedor] <= " &
[Formularios]![compras]![IdProveedor] & "")

y así:
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <=
Formularios![compras]![IdProveedor] ")


lo que obtengo es lo me muestra la columna "Acumulado obtenido" pero lo que
yo necesito es lo que muestra la columna "Acumulado que deseo"

Monto IdProveedor Acumulado Acumulado
obtenido que deseo
30 1 36 30
6 1 36 36
12 2 68 12
20 2 68 32
40 3 140 40
32 3 140 72

Espero que puedan ayudarme.

GRIEGO59
Javier Terán González
2007-06-26 19:52:03 UTC
Permalink
pues según veo no tiene nada que ver la consulta que estás haciendo.

El acumulado que quieres calcular es por idproveedor y no por los
idproveedores menores o iguales

y además supongo que debas menter un autonumérico de esa tabla para
discrimininar los registros.

Quizás deberías poner los campos exactos de tu tabla para ver como se haría
la consulta, pero podría ser

Una posibilidad es:

=DSuma("[Monto]";"[Proveedores]";"[IdProveedor] = " & [IdProveedor] & " AND
IdMonto <=" & [idmonto])

Siempre y cuando tengas una autonumérico en esa tabla de proveedores o un
campo por el que se ordenarán los montos.


Un saludo.
Post by GRIEGO59
Hola
#Error
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <= " &
[Formularios]![compras]![IdProveedor] & "")
=DSuma("[Monto]","[Proveedores]","[IdProveedor] <=
Formularios![compras]![IdProveedor] ")
lo que obtengo es lo me muestra la columna "Acumulado obtenido" pero lo que
yo necesito es lo que muestra la columna "Acumulado que deseo"
Monto IdProveedor Acumulado Acumulado
obtenido que deseo
30 1 36 30
6 1 36 36
12 2 68 12
20 2 68 32
40 3 140 40
32 3 140 72
Espero que puedan ayudarme.
GRIEGO59
GRIEGO59
2007-06-26 20:43:02 UTC
Permalink
Gracias, Javier Terán
Muchas Gracias, funciona muy bien. Ahora voy a estudiar un poco esta
solución para tratar de enterder como y por qué funciona.

GRIEGO59
3***@gmail.com
2014-09-01 06:20:49 UTC
Permalink
Muchas gracias, yo tenía un problema parecido y con vuestra ayuda y el comando de Javier Terán González,está resuelto y me funciona a la perfección.
Un saludo
Post by Gallego
- fecha
- cantidad ingresada
Y quiero obtener una tabla donde me vaya dando a cada fecha el acumulado.
Ejemplo
Consulta 1
Fecha Cantidad
1-1-07 100
2-1-07 200
5-1-07 500
Resultado
Fecha Acumulado
1-1-07 100
2-1-07 300
5-1-07 800
¿Sabe alguien como se hace esto
Continúe leyendo en narkive:
Loading...