Discussion:
Consulta de edad en Años, meses y días
(demasiado antiguo para responder)
jjjgarcia1
2011-06-05 19:27:50 UTC
Permalink
Raw Message
Hola.

Como puedo crear una consulta en Access 2010, que calcule la edad
exacta en años, meses y días, pero en una consulta no en código porque
no tengo ni idea, de programar.
Por ejemplo :

F_Nacimi F_Actual Resultado
06/06/1964 05/06/2011 46 Años, 11 Meses, 30 Días
05/06/1964 05/06/2011 47 Años, 0 Meses, 0 Días
03/06/1964 05/06/2011 47 Años, 0 Meses, 2 Días
03/05/1964 05/06/2011 47 Años, 1 Meses, 2 Días

Gracias por adelantado
Emilio
2011-06-05 20:13:18 UTC
Permalink
Raw Message
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
o mucho me equivoco o sin programación no va a ser posible, si te animas por
esta posibilidad, en mi web tienes alguna que otra función para calcular la
edad.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail PUNTO com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"jjjgarcia1" <***@hotmail.com> escribi� en el mensaje de noticias news:51556e82-62ff-4894-846e-***@gv8g2000vbb.googlegroups.com...
Hola.

Como puedo crear una consulta en Access 2010, que calcule la edad
exacta en años, meses y días, pero en una consulta no en código porque
no tengo ni idea, de programar.
Por ejemplo :

F_Nacimi F_Actual Resultado
06/06/1964 05/06/2011 46 Años, 11 Meses, 30 Días
05/06/1964 05/06/2011 47 Años, 0 Meses, 0 Días
03/06/1964 05/06/2011 47 Años, 0 Meses, 2 Días
03/05/1964 05/06/2011 47 Años, 1 Meses, 2 Días

Gracias por adelantado


__________ Information from ESET Smart Security, version of virus signature
database 6182 (20110605) __________

The message was checked by ESET Smart Security.

http://www.eset.com




__________ Information from ESET Smart Security, version of virus signature database 6182 (20110605) __________

The message was checked by ESET Smart Security.

http://www.eset.com
jjjgarcia1
2011-06-06 11:12:50 UTC
Permalink
Raw Message
Post by Emilio
--------------------------------------------------------------------------
Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvi o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
o mucho me equivoco o sin programaci n no va a ser posible, si te animas por
esta posibilidad, en mi web tienes alguna que otra funci n para calcular la
edad.
Saludos a todos desde Huelva
Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail PUNTO comhttp://www.mvp-access.com/forohttp://www.mvp-access.es/emilio
Hola.
Como puedo crear una consulta en Access  2010, que calcule la edad
exacta en a os, meses y d as, pero en una consulta no en c digo porque
no tengo ni idea, de programar.
F_Nacimi              F_Actual              Resultado
06/06/1964        05/06/2011           46 A os, 11 Meses, 30 D as
05/06/1964        05/06/2011           47 A os,  0  Meses,  0 D as
03/06/1964        05/06/2011           47 A os, 0   Meses,  2 D as
03/05/1964        05/06/2011           47 A os, 1   Meses,  2 D as
Gracias por adelantado
__________ Information from ESET Smart Security, version of virus signature
database 6182 (20110605) __________
The message was checked by ESET Smart Security.
http://www.eset.com
__________ Information from ESET Smart Security, version of virus signature database 6182 (20110605) __________
The message was checked by ESET Smart Security.
http://www.eset.com
Gracias Emilio, he visto en tu página un ejemplo que llamas “Calculo
de los días y/o los meses y/o los años transcurridos entre dos
fechas”. Mi pregunta es ¿cómo puedo utilizar este Código para crear un
Informe?, ¿tengo que crear un Informe con los campos que deseo y
pegar el código?, dame alguna pista.

Gracias
José Mª Fueyo
2011-06-06 12:01:12 UTC
Permalink
Raw Message
Hola.
Tendrás que crear un informe con los dos campos, y un tecer campo
cálculado que tiene como valor el resultado de aplicar la función de
cálculo sobre los otros dos campos. Nada más dificil.
Espero que te oriente.

Salu2
--
José Mª Fueyo
[MS MVP Access]
Emilio
2011-06-06 20:59:37 UTC
Permalink
Raw Message
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!
despues de revisar ese código, que tiene un puñado de años, hoy lo variarís
un poco, lo haría así:

Type Edad
Dias As Byte
Meses As Byte
Años As Integer
End Type


'*******************************************************************************
'* Devuelve los días, los meses y los años transcurridos entre dos fechas
'* deberá incluir la siguiente en la sección de declaraciones de un modulo
'* Type Edad
'* Dias As Byte
'* Meses As Byte
'* Años As Integer
'* End Type
'* uso: Edad("15/1/01", Date).Dias devuelve los dias transcurridos desde el
'* 15/01/01 hasta hoy
'* ESH 06/06/11 19:27 replanteada
'* ESH 01/06/01 19:52
'*******************************************************************************
Public Function Edad(ByRef datFechaInicio As Date, ByRef datFechaFin As
Date) As Edad
Dim bytDias As Integer, _
bytMeses As Byte, _
intAños As Integer, _
datPrimeraFecha As Date, _
datSegundaFecha As Date

' ordeno correctamente las fechas
If datFechaInicio < datFechaFin Then
datPrimeraFecha = datFechaInicio
datSegundaFecha = datFechaFin
Else
datSegundaFecha = datFechaInicio
datPrimeraFecha = datFechaFin
End If
' calculo la diferencia en años
intAños = DateDiff("yyyy", datPrimeraFecha, datSegundaFecha)
If Format$(datSegundaFecha, "mmdd") < Format$(datPrimeraFecha, "mmdd") Then
intAños = intAños - 1
End If
' calculo la diferencia en meses
datPrimeraFecha = DateAdd("yyyy", intAños, datPrimeraFecha)
bytMeses = DateDiff("m", datPrimeraFecha, datSegundaFecha)
' calculo la diferencia en días
datPrimeraFecha = DateAdd("m", bytMeses, datPrimeraFecha)
bytDias = DateDiff("d", datPrimeraFecha, datSegundaFecha)
' si la diferencia en días fuera negativa recalculo días y meses
If bytDias < 0 Then
bytMeses = bytMeses - 1
bytDias = DateDiff("d", DateAdd("m", -1, datPrimeraFecha),
datSegundaFecha)
End If
' en cada caso devuelvo su valor
Edad.Dias = bytDias
Edad.Meses = bytMeses
Edad.Años = intAños
End Function ' Edad

Sub pruebaEdad()
Dim LaEdad As Edad, datFechaInicio As Date, datFechaFin As Date

For datFechaInicio = #1/15/2001# To Date
LaEdad = Edad(datFechaInicio, Date)
Debug.Print "Entre el " & Format$(datFechaInicio, "dd/mm/yy") & " y hoy
han transcurrido " & LaEdad.Años & " años, " & LaEdad.Meses & " meses y " &
LaEdad.Dias & " días"
' reconstruyo la fecha para verificar el resultado
Debug.Print DateAdd("d", LaEdad.Dias, DateAdd("m", LaEdad.Meses,
DateAdd("yyyy", LaEdad.Años, datFechaInicio)))
Next datFechaInicio
End Sub

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
miliuco56 ALGARROBA hotmail PUNTO com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"Jos� M� Fueyo" <***@gmail.com> escribi� en el mensaje de noticias news:dd73f755-5505-41c6-8077-***@k17g2000vbn.googlegroups.com...
Hola.
Tendrás que crear un informe con los dos campos, y un tecer campo
cálculado que tiene como valor el resultado de aplicar la función de
cálculo sobre los otros dos campos. Nada más dificil.
Espero que te oriente.

Salu2
--
José Mª Fueyo
[MS MVP Access]


__________ Information from ESET Smart Security, version of virus signature
database 6184 (20110606) __________

The message was checked by ESET Smart Security.

http://www.eset.com




__________ Information from ESET Smart Security, version of virus signature database 6185 (20110606) __________

The message was checked by ESET Smart Security.

http://www.eset.com
a***@gmail.com
2016-08-14 19:34:24 UTC
Permalink
Raw Message
Post by jjjgarcia1
Hola.
Como puedo crear una consulta en Access 2010, que calcule la edad
exacta en años, meses y días, pero en una consulta no en código porque
no tengo ni idea, de programar.
F_Nacimi F_Actual Resultado
06/06/1964 05/06/2011 46 Años, 11 Meses, 30 Días
05/06/1964 05/06/2011 47 Años, 0 Meses, 0 Días
03/06/1964 05/06/2011 47 Años, 0 Meses, 2 Días
03/05/1964 05/06/2011 47 Años, 1 Meses, 2 Días
Gracias por adelantado
Loading...