Consulta de edad en Años, meses y días

05/06/2011 - 21:27 por jjjgarcia1 | Informe spam
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

Preguntas similare

Leer las respuestas

#1 Emilio
05/06/2011 - 22:13 | Informe spam
¡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" escribió en el mensaje de noticias
news:
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
Respuesta Responder a este mensaje
#2 jjjgarcia1
06/06/2011 - 13:12 | Informe spam
On 5 jun, 22:13, "Emilio" wrote:
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
"jjjgarcia1" escribi en el mensaje de noticiasnews:
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



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
Respuesta Responder a este mensaje
#3 José Mª Fueyo
06/06/2011 - 14:01 | Informe spam
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]
Respuesta Responder a este mensaje
#4 Emilio
06/06/2011 - 22:59 | Informe spam
¡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" escribió en el mensaje de noticias
news:
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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida