Fecha con días, meses y años - Access 2003
Hace algún tiempo tuve tu misma necesidad, ya que en excel si podía hacerlo, pero me encontré que el gran problema era calcular los días.
Al final adapte una función a mis necesidades y la guarde en un módulo para poder usarla en consultas.
Tendrías que ir a CREAR -> MÓDULO y pegar este código:
Function AñoMesDia(ByVal Fecha1 As Date, ByVal Fecha2 As Date) As String
Dim iAño As Integer, iMes As Integer, iDia As Integer
Dim dAñoAddedDate As Date, dMesAddedDate As Date, Fecha3 as Date
If isnull Fecha1 or Fecha2 exit function
'Fecha1 tiene que ser menor que Fecha2, para no tener valores negativos
If Fecha1>Fecha2 then
Fecha3=Fecha1
Fecha1=Fecha2
Fecha2=Fecha3
End if
iAño = DateDiff("yyyy", Fecha1, Fecha2)
dAñoAddedDate = DateAdd("yyyy", iAño, Fecha1)
If dAñoAddedDate > Fecha2 Then
'Menos de un año de diferencia, por lo que restamos 1
iAño = iAño - 1
dAñoAddedDate = DateAdd("yyyy", iAño, Fecha1)
End If
iMes = DateDiff("m", dAñoAddedDate, Fecha2)
dMesAddedDate = DateAdd("m", iMes, dAñoAddedDate)
If dMesAddedDate > Fecha2 Then
'Menos de un mes de diferencia, por lo que restamos 1
iMes = iMes - 1
dMesAddedDate = DateAdd("m", iMes, dAñoAddedDate)
End If
iDia = DateDiff("d", dMesAddedDate, Fecha2)
AñoMesDia = iAño & IIf(iAño = 1, " año, ", " años, ") & iMes & IIf(iMes = 1, " mes y ", " meses y ") & iDia & IIf(iDia = 1, " día", " días")
End Function
Guarda el módulo con el nombre AñoMesDia y vete a crear consulta. En la celda CAMPO adaptas este código a la nomenclatura de tu base de datos:
Diferencia: AñoMesDia([campo_con_la_fecha_nacimiento];Ahora())
Y si lo quieres usar en un formulario, insertas un cuadro de texto y en ORIGEN DE CONTROL:
=AñoMesDia([campo_con_la_fecha_nacimiento];Ahora())