Como calcular la edad, en un formulario ?

Cree un formulario con datos personales, y necesito que después de introducir la Fecha de Nacimiento (FNac) en el Evento, después de actualizar del campo (FNac), me calcule y guarde en el campo (Edad), justamente la edad de la persona. Gracias (Puse este comando pero me da error --> Edad: Fix((Fecha()-[Adherentes!FNac])/365,24))

3 Respuestas

Respuesta
2

En el evento "Después de actualizar" del campo FNac, generas el siguiente código:

Private Sub FNac_AfterUpdate()
   Me.Edad= Fix((Date-Me.FNac)/365,24))
End Sub

Y listo, te lo mostrará en el formulario y lo guardará en el campo de la tabla.

Gracias por responder... Utilice tu código pero me da un error, después del 365 (en la coma), me pone un mensaje que dice "Error de compilación: se esperaba: )"... lo cambien por un punto, pensando que podría ser eso pero esta vez dice "se esperaba: fin de la instrucción".. Me di cuenta que sobra el ultimo paréntesis... Ahora funciona bien.... Muchas Gracias !!!

Un pequeño fallo al copiar-pegar la expresión que usabas, pero me alegra ver que localizaste el error y lo pudiste solucionar.

Respuesta
2

Bueno no es emucho de vb6 pero la idea es que cuando se introduce la fecha de enacimiento, tomas el dato año, lo compara con la fecha actual (año también) y la diferencia es la edad, puedes hace runa función que haga eso. Y te retorna ese valor.

Respuesta
1

Utilice la funcion DateDiff()

Le amplio más la respuesta, siguiendo lo explicado por Sveinbjorn pero con la función que le propuse DateDiff();

  Me.Edad=datediff("yyyy",Me.FNac,date())

El control Me. FNac debe tener el formato fecha.

Recomiendo la función DateDif() que Fix(), ya que está incluida para este tipo de operaciones.

Hago una corrección como apliqué la función devuelve año completo, por ejemplo, si una persona nació el 25/09/1957 estaría retornando 62 a la fecha 25/04/2019 lo que no es correcto, en su defecto debe aplicarse de la siguiente forma:

Me.Edad=Round(DateDiff("m",Me.FNac,date())*30/365,0)

Así si Me.FNac="25/09/1957"  obtendríamos 61 años.

Explicación:

Obtengo los meses, se multiplican por los días del mes (30), estos días de dividen por el número de días del año.

Disculpe me faltó la parte de decimal son 365.24 días del año.

Me.Edad=Round(DateDiff("m",Me.FNac,date())*30/365.24,0)

Muchas Gracias, el código funciona, por lo menos no me da error.... Pero... copie la sentencias tal como la escribiste, pero me da siempre 61, sin importar el mes en que cumpla, si cumple en Enero da 61 si cumple en Septiembre también da 61. (Una curiosidad "m", que significa?)

"m" Significa que Access debe calcularme es el numero de meses entre las dos fechas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas