el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 2015
-
9 août 2004 à 12:52
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 2015
-
9 août 2004 à 15:39
Lut,
faisons simple :)
J'ai une table Devis qui contient une date ou un devis a été réalisé. Au début, ce champ était en "texte" pour raison de simplicité, et ma recherche par date marchait niquel. Jusqu'à ce que je veuille rajouter les critères suivants (ce matin :/ ):
-> rechercher avant la date
-> rechercher la date exacte -> rechercher après la date
Mon champ étant en texte, la recherche renvoyait des resultats érronés, à savoir par exemple:
je recherche AVANT le 05.08.2004, il ne me renvoit pas toutes les dates du mois de juillet XX.07.2004. Ceci venant du fait que le champ est en texte.
Bon, je décide de passer la propriété du champ en date, (normal), mais là, des que je lance ma requete, il me fait une erreur comme quoi je fais une erreur de syntaxe.
cs_frop01
Messages postés1352Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention19 novembre 20082 9 août 2004 à 13:32
Je suis d'accord avec mguilhem.
Est ce que tu es sûr que le champs [Devis] est de type Date ???
si oui drôle de nom tu crois pas ;)
Moi pour tester les requêtes je fais :
debug.print "SELECT * FROM FACTURE WHERE " & r3
ensuite je fais un copier/coller du résultat (dans la fenetre execution) vers une nouvelle requete access et je lances.
MSN : cyberscorp2004@msn.com
Qui s'y frotte, s'y pique .
Vous n’avez pas trouvé la réponse que vous recherchez ?
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 9 août 2004 à 13:50
Oula, y'a du monde qui a posté le temps que je fasse mes petits essais. Mais je marque qd meme ma réponse, car je me suis fait chier à l'écrire :)
(réponse apres le post de mghuilhem)
lut,
>mguilhem : Les points sont les séparateurs par défaut. Ma textbox recoit par défaut la date du jour. Cette date est automatiquement écrite sous cette forme : jour.mois.année
j'ai essayé de remplacer les . par des /, ca marche. Je pense avoir trouvé qqch pour que ca marche, mais je pense pas que ce soit la bonne méthode :
1°) la textbox recoit la date du jour (par défaut), sous la forme jour.mois.année (cette textbox étant du type : date courte, c'est à dire, jour.mois.année)
2°) Je dois convertir les "." en "/"
3°) j'execute ma requete avec ma date sous cette forme donc : jour/mois/année
ca marche, mais c'est totalement débile. Je spécifie a ACCESS que ce champ est une date, que la textbox est une date. Il recoit la date par défaut avec des "." comme séparateur, et après il est pas capable de faire la recherche avec des "." ? ? ? Il faut les changer en "/" ? c koi ce délire ?
Si qqln a une explication ?
------------------------------------------------------------------------
> italia : format dd./mm/yy ne marche pas je crois, j'ai essayé entre temps, et ca renvoit quand meme dd.mm.yy
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 9 août 2004 à 13:59
Bon je viens de trouver une piste :
j'ai (quand meme) essayé ce que tu as marqué It@ :
r3 "Devis" & "#" & Format(Text_Devis, "mm/dd/yy") & "#" ca donne :
"Devis =#08.09.04#"
Il n'y a pas d'erreur le recordset est bien effectué, cependant, les résultats sont faux car dans ma table, les dates ont ce format :
dd mm yyyy l'année est en 4 chiffres
lorsque j'essaye : r3 "Devis" & "#" & Format(Text_Devis, "dd/mm/yyyy") & "#"
ca donne :
""Devis =#09.08.2004#"
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 9 août 2004 à 14:11
Bon, alors voici les modif que j'ai fait :
pour rendre correct le format de la textbox, avant j'utilisais :
Text_Devis = Format$(Text_Devis, "dd.mm.yyyy")
j'ai remplacé par :
Text_Devis = Format$(Text_Devis, "dd.mm.yy")
Comme ca ca me marque 09.08.04
mes requetes sont bien :
If Option11.Value = -1 Then
r3 = "Devis <" & "#" & Format(Text_Devis, "dd/mm/yy") & "#"
ElseIf Option12.Value = -1 Then r3 "Devis" & "#" & Format(Text_Devis, "dd/mm/yy") & "#"
Else
r3 = "Devis >" & "#" & Format(Text_Devis, "dd/mm/yy") & "#"
End If
ATTENTION : Ma table contient que des dates de ce type :
dd.mm.yyyy
Quand je clic sur AVANT 09.08.04 -> resultat 0
Quand je clic sur = 09.08.04 -> resultat 0 (normal, y'en a pas d'aujourd'hui)
Quand je clic sur APRES 09.08.04 -> resultat 71 (toutes les factures)
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 9 août 2004 à 14:14
PS : j'ai essayé de changer les dates de ma table à la main de ce format dd.mm.yyyy -> dd.mm.yy (pour que la recherche et les données soit du meme format)
ca ne veut pas, des que je quitte la case, access remplace dd.mm.yy par dd.mm.yyyy, du fait du type du champ (date/heure)
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 août 2004 à 14:29
el_teedee > tu dis 'dans ma table les dates ont ce format ....'
Non et non, si c'est bien un champ date, il n'a AUCUN format, c'est simplement un nombre flottant sur 64 bits et rien d'autre.
Ce que tu vois est une representation de ces nombres par Access (ou autre) mais rien de plus.
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 9 août 2004 à 14:33
Bon, re, les gens :)
moi = :)
>frop01 : depuis le début, j'ai pas eu le temps de tester ca :
"Select *From Table1 Where Date = DateValue('"+trim(txtdate)+"');"
car j'étais parti sur mes tests, tu dois connaitre ça.
De plus, dès le début, tu m'as fait peut avec :
debug.print "SELECT * FROM FACTURE WHERE " & r3
C pour ca, je comprenais déjà plus ce que me racontais Itali@ :)
Mais la je viens de tester avec DateValue, et ben dis donc, c tis pas que ca marcherait nikel ? :)
Merci à tous....
Voilà donc tout ce que je fais :
If Option11.Value = -1 Then
r3 = "Devis < DateValue('" + Trim(Text_Devis) + "');"
ElseIf Option12.Value = -1 Then r3 "Devis DateValue('" + Trim(Text_Devis) + "');"
Else
r3 = "Devis > DateValue('" + Trim(Text_Devis) + "');"
End If
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM FACTURE WHERE " & r3, dbOpenSnapshot)
et ma textbox est bien toujours de ce format : dd.mm.yyyy
grâce à :
Text_Devis = Format$(Text_Devis, "dd.mm.yyyy")
(ps : Text_Devis = Format$(Text_Devis, "dd/mm/yyyy") c'est la même chose)
el_teedee
Messages postés497Date d'inscriptionmercredi 7 juillet 2004StatutMembreDernière intervention13 juillet 20159 9 août 2004 à 15:39
Pour clore le sujet, j'utilise ce type de requete avec 2 critères de date -> Devis , et Echeance
Dans mon cas, il ne faut donc pas utliser les ";" en fin de requete car sinon, quand j'ajoute mes bout de requete l'une à l'autre, cad r3 & r4, la syntaxe est fausse a cause des ";"
C'était juste pour dire que r3 = "Devis < DateValue('" + Trim(Text_Devis) + "')" ca marche ( sans ";")
et dans mon cas c ce qu'il me fallait :)