Access - Calcular la edad

 
Vista:

Calcular la edad

Publicado por Leonardo (7 intervenciones) el 17/07/2005 19:42:20
Hola, tengo un formulario con el campo fecha de nicimiento y edad, para calcular la edad he puesto dentro del campo edad en origen del control la siguiente expresión: =DifFecha("aaaa";[Fechanacimiento];Fecha()) y me calcula la edad pero no es exacta del todo ya q no tiene encuenta los meses y los días y me pone un año de más si aun no ha pasado el mes de nacimiento.
¿Cómo puedo solucionarlo?
Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Calcular la edad

Publicado por 2pl (773 intervenciones) el 17/07/2005 20:59:29
Utiliza esta función.
Public Function CalcularEdad(fechaNacimiento As Variant) As Variant
'Calcular la edad

Dim Edad As Integer
Dim Fecha As Date

If Not IsDate(fechaNacimiento) Then
CalcularEdad = Null
Exit Function
End If

Fecha = DateValue(fechaNacimiento)
Edad = DateDiff("yyyy", Fecha, Date)

If Date < DateSerial(Year(Date), Month(Fecha), Day(Fecha)) Then
Edad = Edad - 1
End If

CalcularEdad = Edad

End Function
Saludos desde Cádiz
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular la edad

Publicado por Leonardo (7 intervenciones) el 17/07/2005 21:29:52
Ante todo gracias por contestar. Una vez creo un módulo y pongo esta función que debo hacer después
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular la edad

Publicado por 2pl (773 intervenciones) el 18/07/2005 12:01:44
Me imagino que sabras como se llama a una función... pero por si las moscas..
En una consulta EDAD:CalcularEdad(fechanacimiento) esto hace una llamada a la función y devuelve en el campo EDAD la correspondiente a la fecha nacimiento pasada.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular la edad

Publicado por Antonio (20 intervenciones) el 08/09/2005 13:31:36
A ver, he estado buscando por aquí formas de calcular la edad a partir de la fecha de nacimiento y no me aclaro del todo. A ver si esto es correcto:

1) creo en la tabla un campo "edad", en el que ya tenía un campo "Fechanac"
2) creo una consulta "calcular_edad" (de actualización) sobre el campo "edad"
3) En el campo "Actualizar a" escribo CalcularEdad("Fechanac"), y eso se supone que debe llamar a:
4) el módulo Calcularedad, que contiene lo que ha puesto 2pl aquí arriba.

Algo debe estar mal, porque al intentar ejecutar la consulta me dice:

La función Calcularedad no está definida en la función.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular la edad

Publicado por 2pl (773 intervenciones) el 08/09/2005 17:18:07
Te tienes que crear un modulo donde meter y ya podrás invocarla desde cualquier objeto (formulario, informe,consulta).
Saludos para todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular la edad

Publicado por Antonio (20 intervenciones) el 09/09/2005 08:47:20
No me entero... ya había creado el módulo con el contenido que me dijiste, pero al invocarlo no funciona.

Si hay una manera más fácil de hacerlo, aunque no sea tan precisa, me sirve igual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular la edad

Publicado por Héctor (8 intervenciones) el 12/09/2005 13:33:36
Les paso una alternativa, que es un tanto rebuscada, pero sirve para sacar del apuro:


"Edad_Calc: Ent(((Fecha()-PERSONAL!Fecha_Nac)/365))"

A) CREO UN CAMPO, PARA HACERLO CALCULADO ( cargo la expresión en la fila campo)
B) donde "Edad_Calc" es el nombre del nuevo campo; "Fecha_Nac" es el campo con el dato de la fecha de Nacimiento; "Fecha()" es la función que nos dá la fecha del día y "Ent" es una función que me redondea el valor obtenido obviando la parte decimal.

Comentario: no es un método 100 x 100 efectivo, en una tabla con 111 registros me dá un sólo error ( me adelanta un año ), es por el sistema de dividir por 365.

Estoy buscando um método mejor, si alguien lo sabe que me tire el dato ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar