Requête sur champ date [Résolu]

Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Dernière intervention
5 mai 2015
- - Dernière réponse : cs_cantador
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
- 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

Meilleure réponse
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Dernière intervention
5 mai 2015
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de codial
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
0
Merci
Bonsoir,
essaie :

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



cantador
Commenter la réponse de cs_cantador
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
0
Merci
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
Messages postés
270
Date d'inscription
mercredi 14 avril 2004
Dernière intervention
5 mai 2015
0
Merci
Bonsoir cantador,

merci pour l'aide.

Cordialement, codial
Commenter la réponse de codial
Messages postés
8
Date d'inscription
vendredi 12 décembre 2008
Dernière intervention
11 juin 2014
0
Merci
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
Messages postés
8
Date d'inscription
vendredi 12 décembre 2008
Dernière intervention
11 juin 2014
0
Merci
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
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
0
Merci
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.