** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Suma continua en consulta
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Suma continua en consulta

 Responder Responder
Autor
Mensaje
Suso1956 Ver desplegable
Nuevo
Nuevo


Unido: 26/Enero/2021
Localización: Zaragoza
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Suso1956 Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Suma continua en consulta
    Enviado: 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 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


Editado por xavi - 26/Enero/2021 a las 23:12
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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.

Access Aplicaciones
Tecsys.es
Arriba
Suso1956 Ver desplegable
Nuevo
Nuevo


Unido: 26/Enero/2021
Localización: Zaragoza
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Suso1956 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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 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


Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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.

Access Aplicaciones
Tecsys.es
Arriba
Suso1956 Ver desplegable
Nuevo
Nuevo


Unido: 26/Enero/2021
Localización: Zaragoza
Estado: Sin conexión
Puntos: 5
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Suso1956 Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable