Restar fechas

Tengo un problema tengos 3 campos fecha dos de ellos los debo de sumar y me deben de dar cierta cantidad en años, meses y días, esa es la primera duda, como le hago para que salga así, y luego el resultado de estos dos campos mencionados los debo de restar por el tercero, para que también me de en años, meses y días
De antemano agradezco la atención
Desde México City
Armin Canto

3 Respuestas

Respuesta
1
Para tratar los campos fechas, debe hacerse siempre y cuando el tipo de datos del campo sea de tipo Fecha.
Después para sumar fechas hay que intercalar la fecha entre los símbolos #-----# y finalmente para poder hacer esto puedes utilizar las funciones:
Month()
Day()
Year()
Que te devuelven el año, el día y el mes respectivamente.
Ejemplo:
Month(15/05/98) devuelve 5.
No obstante te diré que las fechas son complicadillas para trabajar con ellas.
Espero te haya servido de ayuda. Félix
Respuesta
1
Disculpa la demora, por si no lo has resuelto puedes poner la siguiente función en un módulo global (el código no es mio, solo modifiqué un poco para tu necesidad):
Public Function perendat(fecha1, fecha2, Tipo)
On Error GoTo controlerror
' tipo: a=años, m=meses, d=dias
Dim ca As Long, cm As Long, cd As Long
Dim f1 As Variant, f2 As Variant
If fecha1 < fecha2 Then
f1 = fecha1: f2 = fecha2
Else
f2 = fecha1: f1 = fecha2
End If
ca = DateDiff("yyyy", f1, f2)
If Format(f2, "mmdd") < Format(f1, "mmdd") Then
ca = ca - 1
End If
cm = DateDiff("m", f1, f2) - (ca * 12)
cd = DateDiff("d", Format(f1, "dd"), Format(f2, "dd"))
If cd < 0 Then
cm = cm - 1
cd = DateDiff("d", DateSerial(Year(f2), Month(f2) - 1, Day(f1)), f2)
End If
Select Case Tipo
Case "d"
perendat = cd & " años"
Case "m"
perendat = cm & " meses"
Case "a"
perendat = ca & " días"
Case "t"
perendat = ca & " años" & " " & cm & " meses" & " y " & cd & " días"
End Select
controlerror:
MsgBox "Se generó el error " & Err.Number & " - " & Err.Description
Exit Function
End Function
Y en la propiedad origen del control donde quieres ver el resultado de la resta pones esto : =perendat([fecha2],",[fecha1],"t")
Y listo.
Éxitos!
Eymard Amado Amado
Bucaramanga, Colombia
Respuesta
1
Utiliza la función datediff...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas