OVH Cloud OVH Cloud

que signifie la formule suivante

6 réponses
Avatar
eliane
Bonsoir,

Il y a quelques ann=E9es, encore en activit=E9, j'ai eu l'occasion
d'aborder Access. J'en avais une connaissance plut=F4t superficielle.
J'avais cr=E9=E9 un petit "cas" pour mes =E9l=E8ves dans lequel une formule
permettait de calculer des =E2ges. Or une de mes anciennes =E9l=E8ves me
contacte, elle a repris cet exercice et me demande de lui expliquer la
formule. Elle m'a fait passer le mode op=E9ratoire que je leur avais
remis. Les neurones et la m=E9moire flanchent, je ne me souviens plus
tr=E8s bien...
Voici la formule (dans une fen=EAtre "G=E9n=E9rateur d'expression")

Age : Ent((Date()-[famille]![Date naiss])/362,25)

Je ne sais plus ce que signifie les deux parenth=E8ses apr=E8s "Date", je
suppose que le ! indique l'appartenance du champ "Date naiss" =E0 la
table "famille" ?

Cette formule n'est-elle pas compl=E8tement d=E9pass=E9e maintenant ?

Merci pour l'aide !

6 réponses

Avatar
Sébastien
"eliane" a écrit dans le message de news:


Age : Ent((Date()-[famille]![Date naiss])/362,25)

Merci pour l'aide !


Les éléments entre crochets traitent du champ DateNaiss dans la table
famille.
On soustrait cette date à la date du jour, ce qui, a priori, donne un âge
exprimé en jours.
Le tout est divisé par 365,25 pour obtenir l'âge en années.
Ent permet de récupérer la partie entière, pour faire propre.

Je pense pas qu'il y ait de grosse différence dans le langage depuis, cette
fonction devrait encore fonctionner. Mais le plus simple est encore de
tester !

Séb
Avatar
Eric
Bonsoir Eliane,

- Date() est la fonction qui te retourne la date du jour.
- [famille]![Date naiss] représente bien, comme tu l'as remarqué , le
champ [Date naiss] de la table famille. J'ai pour habitude de mettre
[famille].[Date naiss]

Je n'utilise pas, personnellement, cette formule. Je préfère la suivante
mais tout dépend ce qu'on veut faire et l'auditoire :
Age:DiffDate("aaaa";[Date naiss];Date()) +
(Format(Date();"mmjj")<Format([Date naiss];"mmjj"))
(tout sur une seule ligne)

Si on décompose :
- DiffDate("aaaa";[Date naiss];Date()) donne le nombre d'années entre
les 2 dates sans tenir compte des mois/jours;
- (Format(Date();"mmjj")<Format([Date naiss];"mmjj")) retourne -1 si le
mois/jour de la date courante est inférieur au mois/jour de la date de
naissance. Il s'agit d'une valeur booléenne qui permet de corriger la
valeur retournée par la fonction DiffDate()

Avec un exemple, cela sera plus explicite:
Si la date du jour du calcul de l'age est le 15/09/06 et la date de
naissance 14/09/86 la formule retournera : 20 (ans)
Si la date du jour du calcul de l'age est le 13/09/06 et la date de
naissance 14/09/86 la formule retournera : 19 (ans) obtenu par 20 + (-1)
ce qui correspond à l'age exact en années.

Ton calcul retourne le même résultat que la fonction DiffDate() toute seule.

J'espère ne pas t'avoir trop embrouillée.

Bonsoir,

Il y a quelques années, encore en activité, j'ai eu l'occasion
d'aborder Access. J'en avais une connaissance plutôt superficielle.
J'avais créé un petit "cas" pour mes élèves dans lequel une formule
permettait de calculer des âges. Or une de mes anciennes élèves me
contacte, elle a repris cet exercice et me demande de lui expliquer la
formule. Elle m'a fait passer le mode opératoire que je leur avais
remis. Les neurones et la mémoire flanchent, je ne me souviens plus
très bien...
Voici la formule (dans une fenêtre "Générateur d'expression")

Age : Ent((Date()-[famille]![Date naiss])/362,25)

Je ne sais plus ce que signifie les deux parenthèses après "Date", je
suppose que le ! indique l'appartenance du champ "Date naiss" à la
table "famille" ?

Cette formule n'est-elle pas complètement dépassée maintenant ?

Merci pour l'aide !



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
Bonsoir Eliane,

- Date() est la fonction qui te retourne la date du jour.
- [famille]![Date naiss] représente bien, comme tu l'as remarqué , le
champ [Date naiss] de la table famille. J'ai pour habitude de mettre
[famille].[Date naiss]

Je n'utilise pas, personnellement, cette formule. Je préfère la suivante
mais tout dépend ce qu'on veut faire et l'auditoire :
Age:DiffDate("aaaa";[Date naiss];Date()) +
(Format(Date();"mmjj")<Format([Date naiss];"mmjj"))
(tout sur une seule ligne)

Si on décompose :
- DiffDate("aaaa";[Date naiss];Date()) donne le nombre d'années entre
les 2 dates sans tenir compte des mois/jours;
- (Format(Date();"mmjj")<Format([Date naiss];"mmjj")) retourne -1 si le
mois/jour de la date courante est inférieur au mois/jour de la date de
naissance. Il s'agit d'une valeur booléenne qui permet de corriger la
valeur retournée par la fonction DiffDate()

Avec un exemple, cela sera plus explicite:
Si la date du jour du calcul de l'age est le 15/09/06 et la date de
naissance 14/09/86 la formule retournera : 20 (ans)
Si la date du jour du calcul de l'age est le 13/09/06 et la date de
naissance 14/09/86 la formule retournera : 19 (ans) obtenu par 20 + (-1)
ce qui correspond à l'age exact en années.

Ton calcul retourne le même résultat que la fonction DiffDate() toute seule.

J'espère ne pas t'avoir trop embrouillée.


Bonsoir,

Il y a quelques années, encore en activité, j'ai eu l'occasion
d'aborder Access. J'en avais une connaissance plutôt superficielle.
J'avais créé un petit "cas" pour mes élèves dans lequel une formule
permettait de calculer des âges. Or une de mes anciennes élèves me
contacte, elle a repris cet exercice et me demande de lui expliquer la
formule. Elle m'a fait passer le mode opératoire que je leur avais
remis. Les neurones et la mémoire flanchent, je ne me souviens plus
très bien...
Voici la formule (dans une fenêtre "Générateur d'expression")

Age : Ent((Date()-[famille]![Date naiss])/362,25)

Je ne sais plus ce que signifie les deux parenthèses après "Date", je
suppose que le ! indique l'appartenance du champ "Date naiss" à la
table "famille" ?

Cette formule n'est-elle pas complètement dépassée maintenant ?

Merci pour l'aide !



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
ReBonsoir ;-)

Désolé pour le double post, problème d'envoi.

De plus, après test, ta formule retourne bien l'age exact si l'on divise
par 365,25 et non 362,25, faute de frappe sûrement.
Conclusion : ne pas tenir compte de ma réponse.

...


...
Voici la formule (dans une fenêtre "Générateur d'expression")

Age : Ent((Date()-[famille]![Date naiss])/362,25)

Je ne sais plus ce que signifie les deux parenthèses après "Date", je
suppose que le ! indique l'appartenance du champ "Date naiss" à la
table "famille" ?

Cette formule n'est-elle pas complètement dépassée maintenant ?

Merci pour l'aide !





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
eliane
Grand merci Sébastien et Eric,

Ces deux () après date signifient donc que l'on demande
la date du jour. Je l'avais tout à fait oublié.
Je n'ai plus Access, je n'ai donc pu tester. Je vais peut-
être bien le réinstaller.

Un autre point bloque mon amie.
Voici l'exemple : une entreprise organise un arbre de Noël
pour les enfants de moins de 12 ans. Les cadeaux varient
selon le sexe et par tranche de 3 ans.
Une liste récapitulant le nom des enfants était
établie : Filles / Garçons avec sous-total par tranche de
3 ans.

Mon amie a recherché dans les menus de l'Etat, elle ne
voit pas où demander cette subdivision. Pour moi c'est le
trou noir, ça n'avait posé aucun problème à l'époque et je
n'avais, semble-t-il, pas fait de mode opératoire.

Voyez-vous la solution ?

Merci pour elle et moi !





"eliane" a écrit dans le message de news:


Age : Ent((Date()-[famille]![Date naiss])/362,25)


Les éléments entre crochets traitent du champ DateNaiss dans la table
famille.
On soustrait cette date à la date du jour, ce qui, a priori, donne un âge
exprimé en jours.
Le tout est divisé par 365,25 pour obtenir l'âge en années.
Ent permet de récupérer la partie entière, pour faire propre.

Je pense pas qu'il y ait de grosse différence dans le langage depuis, c ette
fonction devrait encore fonctionner. Mais le plus simple est encore de
tester !

Séb


Avatar
Jackooo
*Jackooo* te dit *Bonjour* Sébastien , *tu disais donc* :
rofl

"eliane" a écrit dans le message de news:


Age : Ent((Date()-[famille]![Date naiss])/362,25)

Merci pour l'aide !


Les éléments entre crochets traitent du champ DateNaiss dans la table
famille.
On soustrait cette date à la date du jour, ce qui, a priori, donne un
âge exprimé en jours.
Le tout est divisé par 365,25 pour obtenir l'âge en années.
Ent permet de récupérer la partie entière, pour faire propre.

Je pense pas qu'il y ait de grosse différence dans le langage depuis,
cette fonction devrait encore fonctionner. Mais le plus simple est
encore de tester !

Séb


Voici la formule que j'utilise avec Access2003 dans une base de
données pour un Club de Tennis et cela fonctionne très bien :
=(Maintenant()-[Naissance])/365,25
--
Cordialement rofl
Jackooo
Enlever *OTERCECI* pour Email
Ma devise :
*Pas assez de temps pour ne rien faire*