Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/07/2010, 04:29
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Calculo Edad Exacta VB6 con Access

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)).
__________________
wile sona li mute e sona