Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

soustraire 2 dates

7 réponses
Avatar
yves89
Bonjour,

Dans un formulaire, je souhaite faire appra=EEtre dasn un champ le
nombre d'ann=E9es d'anciennet=E9 d'un salari=E9.
Je dispose d'un champ [Date_entree] et d'un champ [date_du_jour]
Je cr=E9=E9 un trois=E8me champ independant dont je d=E9finis la velur par
d=E9faut avec une expression pour obtenir lenombre d'ann=E9es
d'anciennet=E9.

Si j'=E9cris cette simple formule [date_du_jour]-[date_entree] j'obtiens
ue date et non un chiffre.=20
Quelle est dont la solution ?

Merci

Yves

7 réponses

Avatar
LiR
Bonjour,

Tu peux faire :

= Year([date_du_jour]) - Year([Date_entree])

Ou :

= DateDiff("yyyy"; [Date_entree]; [date_du_jour])

Ceci dit, [date_du_jour]-[date_entree] devrait il me semble renvoyer le
nombre de jours entre les 2 dates.

Le contrôle n'est-il pas avec un format de date?


Bonjour,

Dans un formulaire, je souhaite faire appraître dasn un champ le
nombre d'années d'ancienneté d'un salarié.
Je dispose d'un champ [Date_entree] et d'un champ [date_du_jour]
Je créé un troisème champ independant dont je définis la velur par
défaut avec une expression pour obtenir lenombre d'années
d'ancienneté.

Si j'écris cette simple formule [date_du_jour]-[date_entree] j'obtiens
ue date et non un chiffre.
Quelle est dont la solution ?

Merci

Yves




Avatar
yves89
Merci.

Pour l'exemple j'ai les données uivantes :
Date d'entrée = 2000
Date du jour = 16 mai 2006

En appliquant ta formule = DateDiff("yyyy";
[Date_entree];[Date_du_jour])
j'obtiens :
- en formatant le champ indépendant [anciennte] en standard = 1972
- en formatant en date = 25/05/1905

Il y a donc bien un problème quelque part

Merci

Yves
Avatar
LiR
Mais 2000 n'est pas une date, c'est un nombre!

Ton champ devrait s'appeller Annee_entree et non Date_entree

Alors utilise :

= Year([date_du_jour]) - [Date_entree]




Merci.

Pour l'exemple j'ai les données uivantes :
Date d'entrée = 2000
Date du jour = 16 mai 2006

En appliquant ta formule = DateDiff("yyyy";
[Date_entree];[Date_du_jour])
j'obtiens :
- en formatant le champ indépendant [anciennte] en standard = 1972
- en formatant en date = 25/05/1905

Il y a donc bien un problème quelque part

Merci

Yves




Avatar
Eric
Bonjour,

2000 n'est pas une date mais le rang d'une année, d'où le problème.
Il faut que la date d'entrée soit une date pour que le resultat de la
fonction DiffDate() soit bon.

Dans ton cas:
=Year([Date_dujour])-[Date_entree]



Merci.

Pour l'exemple j'ai les données uivantes :
Date d'entrée = 2000
Date du jour = 16 mai 2006

En appliquant ta formule = DateDiff("yyyy";
[Date_entree];[Date_du_jour])
j'obtiens :
- en formatant le champ indépendant [anciennte] en standard = 1972
- en formatant en date = 25/05/1905

Il y a donc bien un problème quelque part

Merci

Yves



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

Avatar
yves89
Je me suis mal expliqué, il s'agit bien d'une date. Je n'ai donné que
l'année. Désolé.
Mais j'avais bien saisi : 21/12/2000 dans mon champ, mais je ne l'avais
pas mis au format DATE !!
Donc, maintenant ça fonctionne bien avec la formule
=Year([date_du_jour]) - Year([Date_entree]) puisque j'obtiens 6 !!

Merci à toi

Yves
Avatar
Eric
re,

tu devrais plutôt utiliser cette formule car ton salarié n'a que 5 ans
d'ancienneté et non 6:

DiffDate("aaaa";[Date_entree];[date_du_jour])+(Format([date_du_jour];"aaaamm")>Format([date_entree];"aaaamm"))


Je me suis mal expliqué, il s'agit bien d'une date. Je n'ai donné que
l'année. Désolé.
Mais j'avais bien saisi : 21/12/2000 dans mon champ, mais je ne l'avais
pas mis au format DATE !!
Donc, maintenant ça fonctionne bien avec la formule
=Year([date_du_jour]) - Year([Date_entree]) puisque j'obtiens 6 !!

Merci à toi

Yves



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

Avatar
yves89
Merci Eric,
Tout fonctionne et, de plus j'ai tout compris !

Cordialement

Yves