Inscription à la newsletter

Tutoriel réalisé avec Access Microsoft 365

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)

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 Mode Création Access, j’écris donc :

=DiffDate("aaaa";[Date_naissance];Date())

En passant en Mode Formulaire Mode Formulaire Access, 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"

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.

 

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; DiffDate("aaaa";[Date_naissance];Date()) & " ans"; DiffDate("m";[Date_naissance];Date()) & " mois"))

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

Toutefois, en regardant le formulaire en Mode Formulaire Mode Formulaire Access, 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)

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é.
Inscription à la newsletter