Error de sintaxis en una función para una consulta

A ver, estoy intentando adaptar la función de Neckitto para hallar el valor del registro anterior en una consulta, y me da el error de sintaxis de que falta operador en "Id<" & Id:

Public Function Diferencia(CampoARestar As String) As Variant
    Dim regAnterior As Variant
    If IsNull(CampoARestar) Then Exit Function
    regAnterior = Nz(DMax(Replace(CampoARestar, ",", "."), "TPrecio", "Id<" & Id), 0)
    If regAnterior = 0 Then
        Diferencia = regAnterior
    Else
        Diferencia = CampoARestar - regAnterior
    End If
End Function

Lo que quiero obtener es lo siguiente:

5-Feb-2020 5,6 --> que la función de null porque es el primer registro

8-May-2020 7,5 --> que la función de 1,9

6-Jul-2020 6,5 --> que la función de -1

El campo a restar es "Precio". Tengo que usar el replace porque tiene comas. Y lo que me falla es el criterio.

Esta forma de hacerlo debería funcionar porque la tengo adaptada para un formulario.

¿Qué hago mal?

1 respuesta

Respuesta
2

Puedes hacerlo de una forma más sencilla. Si tengo la tabla

Y construyo una consulta a la que le añado un campo Dif como ves en la imagen

Cuando la abro

A cada registro le resta el anterior

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas