Calcul age

Le
Raymond Corfa
Bonjour,

Je souhaiterais obtenir dans un champ calculé, l'âge d'un individu en
fonction de sa date de naissance saisie dans un autre champ.
Comment faire ?
Merci

Raymond
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
3stone
Le #5043491
Salut,

"Raymond Corfa"
Je souhaiterais obtenir dans un champ calculé, l'âge d'un individu en
fonction de sa date de naissance saisie dans un autre champ.
Comment faire ?



Utilise une petite fonction que tu colle dans un module standard.

Regarde ici:
http://www.mvps.org/accessfr/datetime/date0001.htm



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

PatCatNat's
Le #5043481
J'ai aussi çà à mettre dans un contrôle :

Age:
VraiFaux((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"))/1000
0<2;VraiFaux((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"))/
10000<10;Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"
))/10000;1);Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaamm
jj"))/10000;2)) & "
an";VraiFaux((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"))/
10000<10;Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"
))/10000;1);Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaamm
jj"))/10000;2)) & " ans")

L'avantage c'est que çà fait même l'orthographe ;-)))

Patousky


"Raymond Corfa" news:BCAB5B0B.E8C0%
Bonjour,

Je souhaiterais obtenir dans un champ calculé, l'âge d'un individu en
fonction de sa date de naissance saisie dans un autre champ.
Comment faire ?
Merci

Raymond



Jean-Claude
Le #5043461
Voici ce que j'utilise

QUESTION :

Comment calculer un âge en années et mois par rapport à une date de
naissance
dans Microsoft Access ?

REPONSE :

Créez un module et ajoutez les lignes suivantes :

Option Explicit

Function Age (var As Variant)
Dim varAge As Variant

If IsNull(var) Then Age = 0: Exit Function

varAge = DateDiff("yyyy", var, Now)
If Date < DateSerial(Year(Now), Month(var), Day(var)) Then
varAge = varAge - 1
End If
Age = varAge
End Function

Function AgeMonths (ByVal StartDate As String)
Dim tAge As Double
tAge = (DateDiff("m", StartDate, Now))
If (DatePart("d", StartDate) > DatePart("d", Now)) Then
tAge = tAge - 1
End If

If tAge < 0 Then
tAge = tAge + 1
End If

AgeMonths = tAge Mod 12

End Function


Afin d'afficher le résultat, tapez la formule suivante dans la propriété
Source
contrôle d'un contrôle de formulaire (nom de champ correspond au champ
où est stockée la date de naissance) :

=Age([nom de champ]) & " ans et " & AgeMonths([nom de champ]) & " mois"


"Raymond Corfa" news:BCAB5B0B.E8C0%
Bonjour,

Je souhaiterais obtenir dans un champ calculé, l'âge d'un individu en
fonction de sa date de naissance saisie dans un autre champ.
Comment faire ?
Merci

Raymond



Daniel Carollo
Le #5043411
Bonjour Patrick!

Dans la ligne "pourquoi faire simple quand c'est si simple de faire
complique?", j'essaie d'imaginer une formule plus vilaine a mettre dans un
controle, et j'ai du mal...
Ca serait encore mieux si ca marchait "comyfo".

Pour rester technique, votre formule impose au moins quatorze conversions de
donnees de date a chaine de caracteres a entier a chaine de caracteres...
J'en ai la nausee :-&#^*

J'espere que la vengeance des geriatres leses par votre formule sera
terrible. ;-)

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"PatCatNat's" news:c645ff$ppv$
J'ai aussi çà à mettre dans un contrôle :

Age:

VraiFaux((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"))/1000


0<2;VraiFaux((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"))/


10000<10;Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"

))/10000;1);Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaa
mm

jj"))/10000;2)) & "

an";VraiFaux((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"))/


10000<10;Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaammjj"

))/10000;1);Gauche((Format(Date();"aaaammjj")-Format([DateNaissance];"aaaa
mm

jj"))/10000;2)) & " ans")

L'avantage c'est que çà fait même l'orthographe ;-)))

Patousky


Raymond [mvp]
Le #5043361
Bonjour Daniel.

je n'ose pas imaginer la requête sur 100000 enregistrements.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Daniel Carollo" message de news:%23E9az%
Bonjour Patrick!

Dans la ligne "pourquoi faire simple quand c'est si simple de faire
complique?", j'essaie d'imaginer une formule plus vilaine a mettre dans un
controle, et j'ai du mal...
Ca serait encore mieux si ca marchait "comyfo".

Pour rester technique, votre formule impose au moins quatorze conversions
de

donnees de date a chaine de caracteres a entier a chaine de caracteres...
J'en ai la nausee :-&#^*

J'espere que la vengeance des geriatres leses par votre formule sera
terrible. ;-)

--
Daniel :-)


Jessy Sempere [MVP]
Le #5043281
Salut vous !!!!


je n'ose pas imaginer la requête sur 100000 enregistrements.


;-))
Sinon moi j'avais :

VraiFaux([DateNaissance]=#01/01/1980#;"24 ans 4 mois et 21 jours";
VraiFaux([DateNaissance]=#02/01/1980#;"24 ans 4 mois et 20 jours";
VraiFaux([DateNaissance]=#03/01/1980#;"24 ans 4 mois et 19 jours";
VraiFaux([DateNaissance]=#04/01/1980#;"24 ans 4 mois et 18 jours";
VraiFaux([DateNaissance]=#05/01/1980#;"24 ans 4 mois et 17 jours";
...)))))

Mais bon, elle était vraiment longue... ;-)))))
En plus ça imposait d'avoir que des jeunes... ;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------

Jessy Sempere [MVP]
Le #5043271
Ah oui, du coup la solution que j'avais trouvé pour accélérer le traitement,
c'était :

VraiFaux([DateNaissance>#01/01/1980#;"Age acceptable";
"Alerte !!!! - Cette personne est trop vieille... Licenciement imminent")

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy Sempere [MVP]" news: c65bjq$ivm$
Salut vous !!!!


je n'ose pas imaginer la requête sur 100000 enregistrements.


;-))
Sinon moi j'avais :

VraiFaux([DateNaissance]=#01/01/1980#;"24 ans 4 mois et 21 jours";
VraiFaux([DateNaissance]=#02/01/1980#;"24 ans 4 mois et 20 jours";
VraiFaux([DateNaissance]=#03/01/1980#;"24 ans 4 mois et 19 jours";
VraiFaux([DateNaissance]=#04/01/1980#;"24 ans 4 mois et 18 jours";
VraiFaux([DateNaissance]=#05/01/1980#;"24 ans 4 mois et 17 jours";
...)))))

Mais bon, elle était vraiment longue... ;-)))))
En plus ça imposait d'avoir que des jeunes... ;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------





Pierre CFI [mvp]
Le #5043261
langue de vipere :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jessy Sempere [MVP]"
Salut vous !!!!


je n'ose pas imaginer la requête sur 100000 enregistrements.


;-))
Sinon moi j'avais :

VraiFaux([DateNaissance]=#01/01/1980#;"24 ans 4 mois et 21 jours";
VraiFaux([DateNaissance]=#02/01/1980#;"24 ans 4 mois et 20 jours";
VraiFaux([DateNaissance]=#03/01/1980#;"24 ans 4 mois et 19 jours";
VraiFaux([DateNaissance]=#04/01/1980#;"24 ans 4 mois et 18 jours";
VraiFaux([DateNaissance]=#05/01/1980#;"24 ans 4 mois et 17 jours";
...)))))

Mais bon, elle était vraiment longue... ;-)))))
En plus ça imposait d'avoir que des jeunes... ;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------





Raymond [mvp]
Le #5043251
Licenciement imminent ? trop tard licenciement prononcé.

Pierre, je crois qu'un MVP se fout de nous, S'il savait ce qu'on sait et si
on pouvait ce qu'il peut !

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" news:c65br7$j0j$
Ah oui, du coup la solution que j'avais trouvé pour accélérer le
traitement,

c'était :

VraiFaux([DateNaissance>#01/01/1980#;"Age acceptable";
"Alerte !!!! - Cette personne est trop vieille... Licenciement imminent")

@+
Jessy Sempere - Access MVP


Jessy Sempere [MVP]
Le #5043231
Et si en plus nous dormions tous les 3 ce que Pierrot dort, nous
serions... ;-)))))) (je vous laisse deviner... ;-))))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]"
Licenciement imminent ? trop tard licenciement prononcé.

Pierre, je crois qu'un MVP se fout de nous, S'il savait ce qu'on sait et
si

on pouvait ce qu'il peut !

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" de

news:c65br7$j0j$
Ah oui, du coup la solution que j'avais trouvé pour accélérer le
traitement,

c'était :

VraiFaux([DateNaissance>#01/01/1980#;"Age acceptable";
"Alerte !!!! - Cette personne est trop vieille... Licenciement
imminent")



@+
Jessy Sempere - Access MVP






Publicité
Poster une réponse
Anonyme