SQL avec texte et date

Signaler
Messages postés
19
Date d'inscription
dimanche 27 octobre 2002
Statut
Membre
Dernière intervention
21 janvier 2013
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
19
Date d'inscription
dimanche 27 octobre 2002
Statut
Membre
Dernière intervention
21 janvier 2013

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
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
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