Como calcula cantidad de días en mora en access

Quien puede hacerme el favor de ayudarme, estoy haciendo un pequeño programa de cartera.
Donde tengo un valor y una fecha pactada. Un Valor y una fecha de pago y tengo otras dos que son Saldo y cantidad de días en mora.
El la etiqueta de Días de mora realice un código que pensé que funcionaria.. Pero nada. Que error estoy cometiendo.
Private Sub Dias_Mora_AfterUpdate()
If [Vr_ Pagado] = 0 Then
   [Dias_Mora] = Fecha() - [Fecha_Pactada]
Elself [Vr _Pagado] > [Fecha_Pactada]
    [Dias_Mora] = [Fecha _de_Pago] - [Fecha_Pactada]
Else
    [Dias_Mora] = 0
End Sub
Por favor ayuda... Si esto que hice esta mal... Como lo puedo hacer...

1 Respuesta

Respuesta
1
Seguramente necesitas utilizar la función DateDiff (DiffFecha), que calcula el numero de días que hay entre dos fechas su sintaxis es así:
DateDiff("d",[fecha1],[fecha2])
Este devuelve el numero de días entre las dos fechas. Y con este resultado calculas y comparas. Prueba con el siguiente código modificado:
Private Sub Dias_Mora_AfterUpdate()
If [Vr_ Pagado] = 0 Then
   [Dias_Mora] = DateDiff("d",Fecha(),[Fecha_Pactada])
Elself [Vr _Pagado] > [Fecha_Pactada]
    [Dias_Mora] = DateDiff("d",[Fecha _de_Pago],[Fecha_Pactada])
Else
    [Dias_Mora] = 0
End Sub
Ya realice el proceso y aun nome calcula. En anterior había un error en ElserIf pero aun corregido no funcionan. Estoy enviando link para quien me pueda ayudar con esto, se lo agradecería.
Private Sub Dias_Mora_AfterUpdate()
If [Vr_Pagado] = 0 Then
   [Dias_Mora] = DateDiff("d", Fecha(), [Fecha_Pactada])
ElseIf [Vr_Pagado] < [Vr_Pactado] Then
    [Dias_Mora] = DateDiff("d", [Fecha_de_Pago], [Fecha_Pactada])
Else
    [Dias_Mora] = 0
End Sub
https://download.yousendit.com/OHo0SU5LU1BFd2Z2Wmc9PQ
Pues nada, decirte que solo faltaba una cosilla, cerrar el if con end if, he añadido el código al botón actualizar, para que al pulsarlo se actualice. Y cambiado el orden porque ponía días de mora en negativo.
Un saludo
https://www.yousendit.com/download/YWhQV293aFJBNkZFQlE9PQ
Private Sub Comando16_Click()
On Error GoTo Err_Comando16_Click
If [Vr_Pagado] = 0 Then
   [Dias_Mora] = DateDiff("d", Date, [Fecha_Pactada])
ElseIf [Vr_Pagado] < [Vr_Pactado] Then
    [Dias_Mora] = DateDiff("d", [Fecha_Pactada], [Fecha_de_Pago])
Else
    [Dias_Mora] = 0
End If
Exit_Comando16_Click:
    Exit Sub
Err_Comando16_Click:
    MsgBox Err.Description
    Resume Exit_Comando16_Click
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas