Imprimir página | Cerrar ventana

Suma continua en consulta

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85767
Fecha de impresión: 18/Abril/2024 a las 14:57


Tema: Suma continua en consulta
Publicado por: Suso1956
Asunto: Suma continua en consulta
Fecha de publicación: 26/Enero/2021 a las 20:31

Buenas tardes:

soy nuevo, no muy experto y quizá no lo haga bien, pero os aseguro que he estado mirando para ver si  encontraba la respuesta antes de crear un nuevo tema, pero no he sido capaz.

El caso es que buscando por ahí cómo actualizar un campo, en access, mediante una consulta con la suma acumulada de otro campo encontré en este foro el aporte de Mihura  http://www.mvp-access.com/foro/suma-continua-en-una-consulta_topic82140.html" rel="nofollow - Suma continua en una consulta - Foro de Access y VBA (mvp-access.com)  que me parece maravilloso. lo implanté en un asuntillo y ha estado funcionando perfectamente: (comenzaba por el primer registro seleccionado ...)

campo1    campoAcumulado

   1 1

   3 4

   2 6

 12           18

pero de repente, sin hacer nada, o eso creo yo, ha empezado a sumar a partir del último registro seleccionado:

   1 18

   3 17

   2 14

 12 12

y no encuentro, dónde decirle que funcione en modo ascendente o descendente.

He intentado plantear esta pregunta en el hilo al que me he referido, pero aparecía "tema cerrado" y no me permitía hacerlo. No se si he hecho bien, en cuyo caso os pido disculpas

Muchas gracias y cuidaros.

 Suso

Editado para moverlo al foro adecuado y cambiar el título



Respuestas:
Publicado por: Mihura
Fecha de publicación: 27/Enero/2021 a las 08:30
¿Y si pones la consulta que usas?, difícilmente vamos a adivinarla, hace muchos años que se nos estropeó la bola de cristal ... Big smile






-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Suso1956
Fecha de publicación: 27/Enero/2021 a las 17:42
Hola:
Lo primero: gracias Xavi por mover la consulta al foro adecuado y titularla  y a Mihura, por ayudarme, primero a moverme en el foro y después con la consulta.

Será me mejor que escriba lo que tengo y así lo podréis saber. Tongue. (he intentado poner un pantallazo, pero no me dejaba luego sitio para escribir).

Lo que tengo preparado es:

De una tabla (TablaDatosParaWEB) en la que tengo fecha, Año, Volumen_SEM, ACUM_Volumen_SEM selecciono los datos del año (introducido en otratabla), y calculo la suma acumulada de la variable Volumen_SEM, mediante un función copiada desde http://www.mvp-access.com/foro/suma-continua-en-una-consulta_topic82140.html" rel="nofollow - www.mvp-access.com/foro/suma-continua-en-una-consulta_topic82140.html , dejándolo en ACUM_Volumen_SEM.

Es decir:

UPDATE TablaAñoParaWEB INNER JOIN TablaDatosParaWEB ON TablaAñoParaWEB.AñoPedido = TablaDatosParaWEB.Año SET TablaDatosParaWEB.ACUM_Volumen_SEM = RT_nSumaBruta([Volumen_SEM]);

 

La Función copiada:

Option Compare Database

Public Paso1 As Double

 

Function RT_nSumaBruta(nDato) As Double

 'variable que no se pierde entre las distintas llamadas

    Static SumaBruta As Double

        If Paso1 = 0 Then SumaBruta = 0

            If IsNull(nDato) Then 'si nDato es nulo: variable a cero y salida

                  SumaBruta = 0

                  Exit Function

            End If

            SumaBruta = SumaBruta + nDato

            RT_nSumaBruta = SumaBruta

        Paso1 = 1  ' Variable auxiliar para apagar la suma

 End Function


Muchas gracias,

Saludos, Suso




Publicado por: Mihura
Fecha de publicación: 27/Enero/2021 a las 18:36
Necesitas pasarle un orden para que coja los registros en el que tu quieras, si no le pasas un orden cogerá el que le venga bien, que suele ser FIFO.

Pero claro, en una consulta de actualización no te deja poner una clausula ORDER BY.

Así que si quieres seguir por este camino, tendrás que crearte una tabla con los datos de la suma continua y después usar ésta para la consulta de actualización.

No se, muchas vueltas veo ahí.





-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Suso1956
Fecha de publicación: 27/Enero/2021 a las 20:12
Hola:
Efectivamente fue FIFO a principio, pero luego cambió a LIFO, sin que, conscientemente haya hecho algo.

En fin, investigaré a ver cómo lo resuelvo.

Muchas gracias.

Salud.

Suso




Imprimir página | Cerrar ventana