HP21
Messages postés2Date d'inscriptionmardi 21 juin 2005StatutMembreDernière intervention26 juin 2005
-
21 juin 2005 à 17:33
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012
-
4 juil. 2005 à 13:50
Bonjour à tous,
Je rencontre des difficultés pour filtrer des enregistrements comme je le voudrais dans une zone de liste.
Voici mon problème : j'ouvre un formulaire dans lequel j'ai une zone de liste dont le rowsource est codée à l'ouverture du formulaire. J'ai ensuite quelques boutons qui doivent me permettre de filtrer mes engistrements présents dans la zone de liste (par exemple, ceux dont la date1 > date2, date1 et date2 étant deux chanps présents dans ma requete).
Quand je me fabrique une requete en spécifiant dans les critères date1 > date2, cela fonctionne très bien, mais lorsque j'ajoute ce même code (pompé dans le code SQL de la requete) dans une clausewhere et que j'actualie mon rowsource en ajoutant la clausewhere, ma zone de liste est vide :(
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012 21 juin 2005 à 17:56
Salut
La gestion des listes n'est pas si compliquée juste un peu délicate.
D'après la description de ton problème j'en arrive à la conclusion que
la construction de la requête qui alimente la liste est incorrecte
après surcharge.
Le copié collé a ses limites que la raison ignore... Et on perd souvent
beaucoup de temps a repérer le pb souvent un séparateur de texte absent
fait que le parseur SQL pète un cable...Comme aucune erreur n'est
retournée c'est la panade, et aucune ligne n'est ramenée.
A mon avis il manque simplement un espace " " avant le where de ta clause... ou dans la concaténation de tes AND ...
Fait également attention au caractère de fermeture de l'instruction SQL qui doit être corectement position en fin de requete !!!
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012 4 juil. 2005 à 13:50
Difficile d'être plus clair...
Pour t'éviter de perdre ton temps sur ce genre de pb, je t'invite à travailler ton SQL de la sorte :
dim L_Sql as string
L_Sql = ""
L_Sql = L_Sql & "Select A.Col0"
L_Sql = L_Sql & ", A.Col1"
L_Sql = L_Sql & ", A.Col2"
L_Sql = L_Sql & ", A.Col3"
L_Sql = L_Sql & " From T_COL A"
L_Sql = L_Sql & " Where A.Col0 like '%A'"
L_Sql = L_Sql & " And A.Col1 > 10"
L_Sql = L_Sql & " Order by 2 desc"
L_Sql = L_Sql & ";"
Tu remarqueras qu'aucune chance n'est laissé au hasard dans la manière
de concaténer la chaine SQL, et qu'il n'y a pas non plus de caractère
superflu.
Si ta requete fait - de 255 caractères, tu pourras utiliser un espion
pour vérifier le contenu exacte de ta requête et voir exactement la
nature du problème... Sinon à toi d'être créatif.
Si tu as un doute ou que tu ne trouves pas ton code erreur SQL, alors,
tu copies la requête (dans le débugueur) et tu l'exécutes en tant que
requête via l'interface de création des requêtes Access.