Contar años, meses y días access
Tengo la siguiente uda que seguro me podéis resolver.
Para calcular los años,, meses y días que han pasado entre dos fechas utilizdo el siguiente módulo que muy amablemente me paso un experto.
En un cuadro de texto pongo lo siguiente en origen de control
=SiInm(EsNulo([FINCONTRATO]) O Fecha()<=[FINCONTRATO];fncDiferenciaFechas([INICIOCONTRATO];Fecha());
Pues bien, me gustaría que en el caso de que todavía no hubiese llegado la fecha de inicio de contrato o bien no me apareciese nada o bien apareciese un signo de - y el nº de días (- 5 días ). Ahora mismo me parece el 5, es decir, aunque falten 5 días para que comience el contrato y por lo tanto tendría que ser -5 días
Muchas gracias por vuestra ayuda
Una brazo
Dim vMES As Double
Dim vDia As Double
Dim temp As Date
If IsNull(laFechaIni) Or IsNull(laFechaFin) Then
    fncDiferenciaFechas = ""
    Exit Function
End If
If laFechaIni > laFechaFin Then
    temp = laFechaIni
    laFechaIni = laFechaFin
    laFechaFin = temp
ElseIf laFechaIni = laFechaFin Then
    fncDiferenciaFechas = "1 días"
    Exit Function
End If
If Month(laFechaIni) > Month(laFechaFin) Then
    vaño = DateDiff("yyyy", laFechaIni, laFechaFin) - 1
Else
    vaño = DateDiff("yyyy", laFechaIni, laFechaFin)
End If
If Day(laFechaIni) > Day(laFechaFin) Then
    vMES = DateDiff("m", DateAdd("yyyy", vaño, laFechaIni), laFechaFin) - 1
    If vMES < 0 Then
        vMES = 12 + vMES
        vaño = vaño - 1
    End If
Else
    vMES = DateDiff("m", DateAdd("yyyy", vaño, laFechaIni), laFechaFin)
End If
vDia = DateDiff("d", DateAdd("m", vaño * 12 + vMES, laFechaIni), laFechaFin) + 1 ' Mod 7
If vaño = 1 Then
    fncDiferenciaFechas = vaño & " año"
ElseIf vaño > 1 Then
    fncDiferenciaFechas = vaño & " años"
End If
If vMES = 1 Then
    fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vMES & " mes"
ElseIf vMES > 1 Then
    fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vMES & " meses"
End If
If vDia = 1 Then
    fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vDia & " día"
ElseIf vDia > 1 Then
    fncDiferenciaFechas = IIf(fncDiferenciaFechas = "", "", fncDiferenciaFechas & " y ") & vDia & " días"
End If
End Function
        3 Respuestas
                    Respuesta de Sveinbjorn El Rojo                
                
        
        
            
                2
              
        
        
        
            
            
        
    
                
                    Respuesta de Julián González Cabarcos                
                
        
        
            
                2
              
        
        
        
            
            
        
    
                
                    Respuesta de Eduardo Pérez Fernández                
                
        
        
            
                1
              
        
        
        
            
            
        
    
                

 
        

