Comment calculer l'âge dans une base de données Access ?
1. Votre Assistante : https://www.votreassistante.net - le 08/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
1
Comment calculer l’âge dans une base de données Access ?
Comme nous l’avions déjà vu lors du tutoriel Calculer le nombre de jours entre deux dates
avec Access (fonction DateDiff ou DiffDate), il est possible de calculer un nombre de jours,
mais aussi de mois ou d’années, entre deux dates. Dans ce tutoriel, nous allons voir comment
calculer l’âge par rapport à la date du jour avec une condition si un enfant a moins de
2 ans, mais aussi comment calculer un âge révolu sur Access.
Calculer l’âge en années dans une base de données Access
Pour rappel, pour calculer un intervalle entre deux dates, la syntaxe est :
DiffDate("unité";date1;date2)
1
Pour les besoins du tutoriel, je vais utiliser les données de la table T_Inscrits où un champ
Date_naissance est présent. Dans ce cours, je vais effectuer le calcul dans un champ de
formulaire (le formulaire F_Inscrits), mais la même chose peut être réalisée dans une requête
ou un champ d’état.
Dans la source du champ du formulaire où je souhaite calculer l’âge, en Mode
Création , j’écris donc :
=DiffDate("aaaa";[Date_naissance];Date())
1
En passant en Mode Formulaire , j’obtiens bien l’âge en nombre
d’années des inscrits.
Pour ne pas avoir de chiffres ou nombres sans description de ce à quoi ils correspondent, je vais
modifier la formule de cette manière pour concaténer avec le mot ans :
=DiffDate("aaaa";[Date_naissance];Date()) & " ans"
1
Ici, il est inutile de conditionner le pluriel puisque nous allons conditionner dans le cas où
l’inscrit a moins de 2 ans dans la suite de ce tutoriel.
2. Votre Assistante : https://www.votreassistante.net - le 08/03/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
2
Calculer l’âge en mois dans une base de données Access
Lorsqu’un enfant a moins de 2 ans, on a pour habitude de donner son âge en mois. Pour cela
nous allons imbriquer notre précédente formule dans une fonction SI (désignée par VraiFaux
sur Access) :
=VraiFaux(DiffDate("aaaa";[Date_naissance];Date())>2;
1
DiffDate("aaaa";[Date_naissance];Date()) & " ans"; DiffDate("m";[Date_naissance];Date()) &
2
" mois"))
3
Si le calcul du nombre d’années est strictement plus grand que 2, alors on renvoie un âge en
nombre d’années, sinon en nombre de mois.
Calculer un âge révolu dans une base de données Access
Dans nos exemples, l’âge n’a été calculé que par rapport à l’année en cours. Plus nous
approchons de la fin de l’année, moins le risque d’erreur existe. Mais, au moment où je tourne
cette vidéo, nous sommes le 23 janvier 2022 et, avec la méthode précédente, Access considère
que quelqu’un né en avril par exemple a déjà fêté son anniversaire pour l’année 2022 et lui
ajoute déjà 1 an. Pour remédier à cela, nous allons utiliser une fonction différente.
Dans un nouveau champ du formulaire, j’écris (0,25 permet de rattraper les années bissextiles) :
=(Date()-[Date_naissance])/365,25
1
Toutefois, en regardant le formulaire en Mode Formulaire , on voit
qu’il y a beaucoup de décimales qui ne nous intéressent pas ici ou seulement pour vérifier que
notre formulaire est correct en ajoutant ou soustrayant des jours à une date de naissance proche
de la date du jour.
J’imbrique donc la fonction Int pour ne renvoyer que la partie entière du résultat :
=Int((Date()-[Date_naissance])/365,25)
1
Vous retrouverez le fichier utilisé dans l’Espace Membres accessible aux abonnés à la
newsletter.
Découvrez ma formation complète pour créer votre propre application Access adaptée à
vos besoins quotidiens pour vous faire gagner en productivité.
Tutoriel réalisé avec Access Microsoft 365
Voir la version vidéo de cet article