Access - Hacer referencia a valor calculado en fila anterior de consulta Access

   
Vista:

Hacer referencia a valor calculado en fila anterior de consulta Access

Publicado por Oscar (2 intervenciones) el 28/01/2016 05:01:08
Hola a todos,
Necesito hacer un campo dentro de una consulta que se referencie a sí mismo, pero en la fila inmediatamente anterior:

Tengo la tabla Tabla1 con campos numéricos IdCampo Campo1 y Campo2

En la consulta tengo creado el campo DiferenciaActual: ([DiferenciaAnterior]+[Campo1]-[Campo2])
El problema lo tengo para crear el campo DiferenciaAnterior que debe contener el mismo valor que "DiferenciaActual" calculó en la fila de arriba (registro anterior).

Espero que me pueda ayudar. Les agradezco desde ya!

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Hacer referencia a valor calculado en fila anterior de consulta Access

Publicado por Enrique Heliodoro (1663 intervenciones) el 28/01/2016 07:31:31
Ese dato (diferenciaAnterior <=> diferenciaActual) ¿se guarda en alguna parte?.

Si no se guardase ¿Cómo se podría referenciar al 'registro anterior'? (hay que tener en cuenta que el anterior siempre dependerá de la ordenación que se aplique)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Hacer referencia a valor calculado en fila anterior de consulta Access

Publicado por Oscar (2 intervenciones) el 28/01/2016 17:23:50
Hola, el valor DiferenciaAnterior es igual al de DiferenciaActual pero de la linea anterior y no se almacenan, solo son calculos realizados dentro de la consulta.

Solo están almacenados en la tabla los valores de Campo1 y Campo2.

Había intentando con DBusq para que DiferenciaAnterior traiaga el valor de DiferenciaActual cuando IdCampo = IdCampo-1 , pero no me resulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de douglas

Hacer referencia a valor calculado en fila anterior de consulta Access

Publicado por douglas (280 intervenciones) el 28/01/2016 17:53:59
Dentro de una misma consulta no puedes sumar dos montos de distinto registro.

Para eso debes ponerlo en un formulario filtrarlo y calcularlo al pie de página para reflejar el cálculo en el formulario.
o bien la forma larga por Visual Basic para aplicaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Hacer referencia a valor calculado en fila anterior de consulta Access

Publicado por Enrique Heliodoro (1663 intervenciones) el 28/01/2016 17:56:15
Pues lo tenemos complicado, porque 'el valor anterior' también dependerá de su anterior registro y así se cumplirá hasta llegar al primero ...

Si nos bastase con lo que hubiere en campo1 y campo2 del registro anterior, un DLookup y fin del problema (eso si, si disponemos de algún dato que nos indique fehacientemente cual es el anterior) si la referencia fuera el 'ID' ...

= DLookup ("[campo1] - [campo2]", "Tabla1", "[ID]=" & [actual_ID] - 1) +[Campo1]-[Campo2]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de douglas

Hacer referencia a valor calculado en fila anterior de consulta Access

Publicado por douglas (280 intervenciones) el 28/01/2016 19:04:21
Bueno para ayudarte un poco te hice un ejemplo y te adjunto aca

Para que lo entiendas primero mira la base de datos antes de aplicarlo

En este ejemplo tienes que coger el saldo actual y llevarlo al siguiente registro saldo anterior esta es una forma fácil de lograrlo
Debes seleccionar el registro a actualizar

Espero sea lo que buscas


Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de douglas

Hacer referencia a valor calculado en fila anterior de consulta Access

Publicado por douglas (280 intervenciones) el 28/01/2016 19:30:24
Olvide en el ejemplo indexar la base de menor a mayor para que te haga todos los registros del mismo item
saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar