Requête sur champ date [Résolu]

codial 270 Messages postés mercredi 14 avril 2004Date d'inscription 5 mai 2015 Dernière intervention - 7 sept. 2009 à 09:15 - Dernière réponse : cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention
- 10 sept. 2009 à 15:50
Bonjour,

Encore une question sur les dates !!!
Voilà quelque temps que je galère sur cette requête et je ne vois pas pourquoi j'ai le message "Type incompatible dans l'expression du critère..."
var Today : Tdatetime;
...

begin
  Today := now;

With DM.qryEnCoursDemain do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Select * from tbl_Evenements ');
    SQL.Add('WHERE Fait False and DateDeb ' + QuotedStr(FormatDateTime('dd/mm/YYYY', today+1)));
    Open;
  end;


DateDeb est un champ d'une table access Date/Heure Format Date, abrégé

Si quelqu'un peut m'aider à avancer, d'avance merci...

Cordialement, codial
Afficher la suite 

Votre réponse

7 réponses

codial 270 Messages postés mercredi 14 avril 2004Date d'inscription 5 mai 2015 Dernière intervention - 8 sept. 2009 à 08:10
+3
Utile
Bonjour cantador,

merci pour ta réponse mais j'ai toujours le même message !!

Ceci dit j'ai fait une requête paramétrée et celà fonctionne normalement.
With DM.qryEnCoursDemain do
  begin
  Close;
  SQL.Clear;
  SQL.Add('Select * from tbl_Evenements WHERE DateDeb=:noDate');
  Parameters.ParamByName('noDate').Value:= DateToStr(today+1);
  open;
  end;


Encore merci
Cordialement, codial
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de codial
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 7 sept. 2009 à 22:28
0
Utile
Bonsoir,
essaie :

---
SQL.Add('WHERE (Fait False) and (DateDeb ' + QuotedStr(FormatDateTime('yyyy/mm/dd', today+1))));



cantador
Commenter la réponse de cs_cantador
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 8 sept. 2009 à 13:47
0
Utile
je t'avouerai n'avoir pas testé et évidemment dans ce cas c'est pile ou face..

Les formats de date sous acces avec QuotedStr sont assez chatouilleux...
La requête paramétrée que je n' ai pas proposée pour une fois est en général la solution pour s'en sortir..

cantador
Commenter la réponse de cs_cantador
codial 270 Messages postés mercredi 14 avril 2004Date d'inscription 5 mai 2015 Dernière intervention - 9 sept. 2009 à 18:22
0
Utile
Bonsoir cantador,

merci pour l'aide.

Cordialement, codial
Commenter la réponse de codial
rozg 8 Messages postés vendredi 12 décembre 2008Date d'inscription 11 juin 2014 Dernière intervention - 10 sept. 2009 à 12:43
0
Utile
En SQL, les dates exprimées sous forme littérale doivent être entre deux caractères #.
Le bon format est donc FormatDateTime('#dd/mm/yyyy#', today+1)

Je ne suis plus très sûr mais je crois qu'il ne faut pas Quoted.
Commenter la réponse de rozg
rozg 8 Messages postés vendredi 12 décembre 2008Date d'inscription 11 juin 2014 Dernière intervention - 10 sept. 2009 à 13:41
0
Utile
Sorry, j'ai tapé trop vite, il faut mettre le mois avant le jour donc
FormatDateTime('#mm/dd/yyyy#',today+1);

nb: J'ai écris des applis qui attaquent des tables Access via ODBC avec cette technique, ça marche très bien.
Commenter la réponse de rozg
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 10 sept. 2009 à 15:50
0
Utile
Je viens de tester et avec une date stockée soit au format texte, soit au format date/heure

effectivement ça marche avec :
FormatDateTime('#mm/dd/yyyy#',today + 1);



merci rozg pour ce rappel..

cantador
Commenter la réponse de cs_cantador

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.