Como tomar el registro anterior en cadena en una consulta access

Tengo la tabla dinero

Retiro entrega saldo saldo anterior

500   ---100  ----- 400 -------0

600   ---100  ----- 500 -------400

100   ---100  -----  0--------- 500 

500 ---300 -----200 -------0

600- ----500 ---- 100----- 400

0- ----     0  -- --   0-----100

Como verán el saldo pasa a la nueva fila como saldo anterior

Desde ya

1 respuesta

Respuesta
1

Partiendo de la premisa de que en la línea 600-500-100 el saldo anterior sería 200 y no 400, te respondo única y exclusivamente a lo que preguntas.

Si tengo la tabla Movimientos

Con ella construyo un formulario contínuo

De forma que si escribo una cantidad en Retiro y pulso Enter, automáticamente me rellena el saldo anterior

El código del formulario es

Private Sub Retiro_AfterUpdate()
If Me.NewRecord Then
SaldoAnterior = Nz(DLast("saldo", "movimientos", "idmov < " & Me.IdMov & ""))
End If
End Sub
Private Sub Saldo_GotFocus()
Saldo = Nz([Retiro]) - Nz([Entrega])
End Sub

Hola. Muchísimas gracias. Es exactamente los que necesito.

Pero se puede hacer en una consulta. Uso es valor en muchos lugares. Y con una consulta tomo fácilmente el valor. Igual con eso ya soluciono casi todos los problemas

No lo entiendo y no lo entenderé. Para poder ver un valor en una consulta antes tiene que haber valores en la tabla origen( y supongo que esa tabla se llena desde un formulario). Mientras que la solución que te puse ya te da el Saldo Anterior "antes" de que se guarden en la tabla. Para saber que vehículo está en cada garaje no espero a que los hayan puesto. Si tengo la orden de distribución, ya sé cual va a cual sitio.

Por otro lado, lo mismo que para ver el Saldo anterior de un movimiento, tienes que usar la función Dlookup o Dlast se haría exactamente igual si el valor está en la tabla. El lenguaje SQL es infinitamente menos versátil que el VB.

Dicho esto si quito el campo Saldo Anterior de la tabla

Y construyo una consulta a la que le añado un campo Saldo Anterior como en la imagen

Al abrirla

El inconveniente de esto es que si eliminaras un Idmov, ya no irían correlativos y la resta no serviría.

¡Gracias! Muchísimas gracias

Es lo que necesitaba, y gracias por la observación de eliminación de un idmov

En este caso al no tener que eliminar nada me va funcionar correctamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas