SQL avec texte et date

cs_jujube Messages postés 19 Date d'inscription dimanche 27 octobre 2002 Statut Membre Dernière intervention 21 janvier 2013 - 20 oct. 2007 à 01:09
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 20 oct. 2007 à 11:42
Bonjour, pourriez-vous me dire ce qui ne fonctionne pas avec cette requete SVP.
Les champs sDepart et sFin sont des dates  

Merci





      sRequete = "SELECT tblEvenement.EvenementID, tblEvenement.Nom,tblEvenement.Prenom,tblEvenement.Famille, tblEvenement.DateEvenement , tblEvenement.GenreEvenement,tblEvenement.Age,tblEvenement.Note,tblEvenement.MoisAge " & _
                           "From tblEvenement " & _
                        "WHERE tblEvenement.GenreEvenement <> '" & "L" & "'" & " or tblEvenement.GenreEvenement <>'" & "F" & "'" & _
                        " and " & " tblEvenement.DateEvenement Between " & "#" & sDepart & "#" & " and " & "#" & sFin & "#"




Clément Monette

Vous êtes tous des champions...Bravo

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 oct. 2007 à 04:53
Salut
"Ma requète ne fonctionne pas" : pas suffisant comme explication.
Problème de syntaxe refusée ?
Problème de mauvais résultats retournés ?
Explique bien tes problèmes, sinon tu risques de ne pas avoir de réponse adéquat !

Il y a un peu trop de & à mon avis.
" and " & "#"
peut s'écrire simplement " and #"
+ une mise en page plus claire, ce qui donne :

sRequete = "SELECT tblEvenement.EvenementID, " & _
                  "tblEvenement.Nom, " & _
                  "tblEvenement.Prenom, " & _
                  "tblEvenement.Famille, " & _ 
                  "tblEvenement.DateEvenement, " _
                  "tblEvenement.GenreEvenement, " _
                  "tblEvenement.Age, " & _
                  "tblEvenement.Note, " & _
                  "tblEvenement.MoisAge " & _
             "From tblEvenement " & _
            "WHERE tblEvenement.GenreEvenement <> 'L' " & _
               "or tblEvenement.GenreEvenement <> 'F' " & _
              "and tblEvenement.DateEvenement Between #" & sDepart & "# " & _
                                                 "and #" & sFin & "#"

Voilà, c'est plus clair.
Et là on voit tout de suite :
- Que le mélange de OR et de AND peut poser problème. Ajoutes des parenthèses ( et ) pour regrouper les termes.
- Revoit tes conditions : A <> 'L' or A <> 'F'
   Ca, ça donne True en permanence, quoi qu'il y ait dans GenreEvenement
   Si tu veux dire qu'il ne faut pas que GenreEvenement ne soit ni L ni F, c'est un AND et pas un OR

PS1 : Quand on coupe les lignes comme je te le propose, il faut toujours faire attention à bien mettre un espace avant le " de fin de ligne sinon les mots de la syntaxe peuvent se retrouvés collés les uns aux autres. C'est l'inconvénient de cette présentation, on ne le voit pas toujours.
PS2 : Si tu ne travailles qu'avec une seule table, pas la peine de répéter le nom de la table devant le nom des champs.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_jujube Messages postés 19 Date d'inscription dimanche 27 octobre 2002 Statut Membre Dernière intervention 21 janvier 2013
20 oct. 2007 à 04:59
Un gros merci pour tes explications aussi claires. Je ferai attention commme tu me le suggère de porter attention à la formulation de mes problèmes.
La disposition suggérer est tout simplement merveilleuse.....
Merci

Clément Monette

Vous êtes tous des champions...Bravo
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 oct. 2007 à 11:42
Salut,

Je "rajouterai" à la réponse de Jack(salut), que si tu séléctionne tous les champs de table : tblEvenement, tu peux résumer ta requête comme cela :

sRequete = "SELECT * From tblEvenement " & _
            "WHERE tblEvenement.GenreEvenement <> 'L' " & _
               "or tblEvenement.GenreEvenement <> 'F' " & _
              "and tblEvenement.DateEvenement Between #" & sDepart & "# " & _
                                                 "and #" & sFin & "#"

* >> Tous les champs de ta table

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
Rejoignez-nous