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

access 97 et fonction datediff / date

6 réponses
Avatar
Seb
Bonsoir à tous
J'ai un problème dans une de mes requetes sql sur une table contenant un
champ date:
je souhaite calculer la différence en nombre de jour entre la date contenu
dans ce champ et la date courante.
voici ma requete:

SELECT *
FROM Contrat_de_location AS C
WHERE datediff("d",c.[datecontrat],date())<10;

c.[datecontrat] est un champ de type: date/time , avec pour format: short
date ( je travaille avec un access en anglais ).

lorsque j'execute la requete, j'obtiens un message qui me dit :
this expression is typed incorrectly or it is too complex...


Je ne sais pas trop quoi essayer.

Merci de votre aide,

Sébastien S

6 réponses

Avatar
3stone
"Seb" a écrit dans le message news:
3fdcad1d$0$28711$
Bonsoir à tous
J'ai un problème dans une de mes requetes sql sur une table contenant un
champ date:
je souhaite calculer la différence en nombre de jour entre la date contenu
dans ce champ et la date courante.
voici ma requete:

SELECT *
FROM Contrat_de_location AS C
WHERE datediff("d",c.[datecontrat],date())<10;




A part une faute de frappe dans le nom de table ou de champ...
car l'expression semble totalement correcte.

ou, éventuellement un problème de références qui empêcherai
la reconnaissance de la fonction "Date()"


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
Seb
"3stone" a écrit dans le message de
news:3fdcb592$0$2877$

ou, éventuellement un problème de références qui empêcherai
la reconnaissance de la fonction "Date()"


Comment pourrais-je vérifier cela ? Parce que je suis absolument certain
qu'il n'y a pas d'erreur de nom pour ce qui concerne les tables et les
champs :/

Merci,

Sébastien S

Avatar
Seb
ah oui, une autre piste à laquelle j'ai pensé:

date() doit renvoyer la date au format anglo saxon : MMJJYYYY mais mes dates
sont au format français dans la table JJMMYYYY.

Je ne pense pas que cela puisse influer, access doit gérer cela en interne
non ?

Merci :)
Avatar
3stone
Salut,

"Seb"
ou, éventuellement un problème de références qui empêcherai
la reconnaissance de la fonction "Date()"


Comment pourrais-je vérifier cela ?



Ouvre un module quelconque (a partir de Access 2000, tu fait Alt + F11)
ensuite, menu Outils, Références...
Si tu as des références marquées "Manquantes", décochent-les !
Compile, menu Débogage, Compiler...

Si cela passe, reteste ta requête.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------


Avatar
3stone
re,

"Seb"
ah oui, une autre piste à laquelle j'ai pensé:

date() doit renvoyer la date au format anglo saxon : MMJJYYYY mais mes dates
sont au format français dans la table JJMMYYYY.

Je ne pense pas que cela puisse influer, access doit gérer cela en interne
non ?



Dans ce contexte-ci, cela ne doit éffectivement pas intervenir...

Mais, tu peux toujours t'en assurer par :

SELECT *
FROM Contrat_de_location AS C
WHERE datediff("d", Format(c.[datecontrat],"#mm-dd-yyyy#"), Format(date(),"#mm-dd-yyyy#"))<10

mais, regarde d'abord tes références...


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
Seb
"3stone" a écrit dans le message de
news:3fdcca34$0$2880$

Si cela passe, reteste ta requête.


Il semblerait que ca marche, un grand merci à toi.

Sébastien S