Age sous access

Fermé
kdycisse Messages postés 1 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 30 juillet 2008 - 30 juil. 2008 à 10:48
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 - 30 juil. 2008 à 15:17
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 vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
30 juil. 2008 à 11:19
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 35 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 14 septembre 2008 11
30 juil. 2008 à 11:30
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 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
30 juil. 2008 à 15:17
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