Rectifico revisé y hay inconsistencia. Le presento la opción de hacerlo 2 formas con una consulta o una función.
TABLA
Observe que ya está tabla no tiene la columna fecha_vence, toda vez, que se obtiene de la consulta.
CONSULTA CON IIF()
DISEÑO DE LA CONSULTA CON IIF()
Contenido de los campos que se ven incompletos en la imagen:
1 fecha_vence: [fechadeuda]+30
2 dias: DifFecha("d";[fecha_vence];Fecha())-1
3 informe: SiInm([dias]=0;"Caducó";SiInm([dias]=-1;"Le vence en 1 día";SiInm([dias]=-2;"Le vence en 2 días";SiInm([dias]=-3;"Le vence en 3 días";SiInm([dias]>0;"Vencido";"Sin vencer")))))
CONSULTA CON LA FUNCIÓN
DISEÑO DE LA CONSULTA CON LA FUNCIÓN
Observe que es mucho más practico el uso de la función resultado(), tiene la ventaja que la puede llamar desde cualquier consulta, formulario o reporte.
CÓDIGO DE LA FUNCIÓN
Public Function resultado(mfecha_prestamo, mdias_vence) As String
Dim dias As Integer
Dim fecha_vence As Date
fecha_vence = DateAdd("d", mdias_vence, mfecha_prestamo)
dias = DateDiff("d", fecha_vence, Date) - 1
Select Case dias
Case 0
resultado = "Caducó"
Case -1
resultado = "Vence en 1 día"
Case -2
resultado = "Vence en 2 días"
Case -3
resultado = "Vence en 3 días"
Case Is > 0
resultado = "Vencido"
Case Else
resultado = "Si vencer"
End Select
End Function
La función requiere de 2 parámetros, fecha del préstamo y el plazo en días.
EJEMPLO EN UN FORMULARIO
Ejemplo 1
Ejemplo 2
Ejemplo 3
Ejemplo 3 (Plazo a más de 30 días)
Código al cambiar el plazo del cuadro combinado:
Private Sub cboPlazo_AfterUpdate()
If IsDate(Me.fechaPrestamo) Then
Me.ctlEstado = resultado(Me.fechaPrestamo, Me.cboPlazo)
End If
End Sub
Si quiere el ejemplo puede solicitarlo a [email protected], favor en el asunto anotar la consulta.