Age sous access

kdycisse Messages postés 1 Statut Membre -  
Jean_Jacques Messages postés 1048 Statut Membre -
Bonjour,
je souhaiterai calculer l'age d'une personne à l'aide de sa date de naissance et ensuite dans une autre colonne k access ecrive "majeur" si l'age est supérieur à 18 et "mineur" sinon
merci par avance

3 réponses

Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
 
Bonjour,
le plus simple est de créer la date de naissance d'une personne qui a 18 ans aujourd'hui (dateDuJour - 18 ans) et de comparer la date de naissance de la personne à tester à cette date.
0
Milou2211 Messages postés 43 Statut Membre 11
 
Bonjour,

Une colonne ne peut être calculée directement dans la gestion des tables d'ACCESS. De plus, l'âge d'une personne varie tous les jours. Pour les personnes majeures, le statut ne changera pas au cours du temps. PAr contre, pour les personnes mineures, le statut peut changer d'un jour à l'autre. Il faudrait donc le recalculer régulièrement ou en chargeant le programme.

Une solution serait de lancer un requête "mise à jour" qui permet de tester l'âge des personnes mineures et de vérifier si le nombre d'années par rapport à la date système esst supérieur à 18 ou bien de vérifier si la date du jour est supérieure à la date de naissance + 18 ans. Cette dernière solution me semble plus pratique car elle ne tient pas compte du nombre de jours de l'année.

UPDATE tbpersonnes SET tbpersonnes.majeur = Yes
WHERE (((tbpersonnes.majeur)=No) AND ((Year([dnaiss])+18)<Year(Date())));

Je calcul doit être amélioré car un âge n'est pas calculé sur une année mais doit aussi prendre en compte le jour et le mois.

Ma table est la table tbpersonnes contenant le champ dnaiss et le champ majeur.

Cette solution te convient-elle ?
0
Jean_Jacques Messages postés 1048 Statut Membre 112
 
Bonjour,

En faisant une recherche dans l'aide de vb je constate qu'il convient d'utiliser "alt + 92" pour obtenir un entier:

Si l'on résonne en années entières on peut envisager une syntaxe du type suivant :

if DiffDate("y", [Now], [Date_de_naissance]])(alt +92)\18 > 0 then "majeur" etc...

A tester

A+

La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
0