Buenas
VB, Access, y varios otros entornos tratan las fechas como números enteros de 32bits (Long en VB), que representan el número de días transcurridos desde una fecha concreta; en el caso de MS, es el 1 de enero de 1900. Normalmente no es importante saber la fecha de referencia.
Para saber el intervalo en días entre dos fechas, sólo tienes que restarlas, lo que te proporciona directamente un Long que puedes dividir. En tu caso, una forma sería:
Código:
Dim Tmp As Long
Tmp = Date - Me.AdoNiño.Recordset!FeNa
Años = Tmp /365
Meses = (Tmp mod 365) / 30
Dias = Tmp - (Años * 365) - (Meses * 30)
Eso si, ten en cuenta que el número de días siempre será aproximado, ya que estás suponiendo que todos los meses tienen 30 días. Sin embargo, al restar de esta manera, estás incluyendo todos los días posibles, contando los 29 de febrero de los posibles años bisiestos que correspondan, ya que el propio sistema se encarga de ello.
Un truco un poco bizarro sería convertir el resultado en días a tipo fecha (CDate(Tmp) en el ejemplo), lo que te daría una fecha exacta de la que puedes extraer directamente el dia y el mes con Day(Tmp) y Month(Tmp) respectivamente, y el año mediante Year(Tmp)-Year(Cdate(0)).