Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul age

11 réponses
Avatar
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

10 réponses

1 2
Avatar
3stone
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
-----------------------------

Avatar
PatCatNat's
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" a écrit dans le message de
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



Avatar
Jean-Claude
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" a écrit dans le message de
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



Avatar
Daniel Carollo
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" wrote in message
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


Avatar
Raymond [mvp]
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" a écrit dans le
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 :-)


Avatar
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/
------------------------------------

Avatar
Jessy Sempere [MVP]
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]" a écrit dans le message
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/
------------------------------------





Avatar
Pierre CFI [mvp]
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]" a écrit dans le message de 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/
------------------------------------





Avatar
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]" a écrit dans le message 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


Avatar
Jessy Sempere [MVP]
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]" a écrit dans le message news:

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]" a écrit dans le message
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






1 2