Deferencia entre registros Access
Resulta que estoy trabajando en una base de datos y de una consulta obtengo los valores de un contador con distintas fechas para distintos autos y quiero crear otro campo el cual me diga la diferencia entre el nuevo contador y el anterior... Aquí va un ejemplo:
Auto FMed Vmed Dif
Peugeot 11-09-2014 1000 0
Peugeot 01-08-2014 900 100
Peugeot 30-06-2014 790 110
Peugeot 01-06-2014 710 80
Citroen 11-09-2014 1200 0
Citroen 02-08-2014 1110 90
Citroen 01-07-2014 1010 100
Y así con los otros modelos, se me había ocurrido que sería más fácil si ordenaba por equipo(Auto) y por fecha(FMed) los registros, así poder comparar 1° por equipo y 2° por el Vmed (kilometraje), le doy valor 0 al primero de cada equipo, ya que no existe un registro más reciente, se me hace más fácil darle 0 al primero que al ultimo.
mi algoritmo en visual era el siguiente:
Public Function KilometrajeAcumulado() As Double
Dim rst As DAO.Recordset
Dim DIF, VAL, VAL1 As Double
Dim EQ, EQ1 As String
Set rst = CurrentDb.OpenRecordset("SemaforoS2")
rst.MoveFirst
EQ = Trim(rst.Fields(0))
VAL = Trim(rst.Fields(3))
Do Until rst.EOF
EQ1 = Trim(rst.Fields(0))
VAL1 = Trim(rst.Fields(3))
If EQ=EQ1 Then
DIF = VAL - VAL1
else
DIF=0
End If
KilometrajeAcumulado = DIF
EQ = EQ1
VAL = VAL1
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Function
Donde EQ y EQ1 es para manejar el nombre del equipo, VAL y VAL1 el valor del hodometro, DIF la diferencia de kilometraje, En la consulta "Semaforo2" se obtiene una tabla de registro similar a la anterior pero sin el campo DIF, de esta tabla obtiene los equipos, fechas y valores de contadores.
Resulta que cuando en la nueva consulta pongo en el campo
DIF: KilometrajeAcumulado()
Me entrega para todos los registros el mismo valor, que es la resta entre los dos primeros registros, y debería mostrarme distintos valores y 0 a los primeros de cada equipo...
Quien me puede ayudar a solucionar esto.