fraysco
Messages postés1Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention27 février 2007
-
27 févr. 2007 à 14:15
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
27 févr. 2007 à 20:15
Bonjour,
J'ai créer une requête afin de récupérer des données sur mon tableau Excel mais j'ai l'erreure "Attendu : fin d'instruction" sur la première parenthèse fermante de ma reqète.
Pouvez vous m'aidez s'il vous plait car je ne vois pas d'où viens le pb.
Merci.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 févr. 2007 à 20:15
Salut
Sous SQL :
+ La recherche plutiple ne se fait pas avec des * mais des %
+ Si tu utilises ce genre de recherche, ce n'est pas = mais Like qu'il faut utiliser
+ Attention à la gestion des OR et des AND dans une même requète Il y a des priorités et ton résultat ne sera surement pas celui escompté --> Utilise des parenthèses
+ Je ne crois pas que la rupture de ligne avec le symbole _ soit accepté sous SQL (only sous VB). Il te faut donc fermer les " puis les réouvrir à la ligne suivante. De plus, _ ne peut s'utiliser qu'après un &
+ Après TELEPHONE FIXE IP, il manque un OR
+ Toujours mettre un espace devant et derrière les mots clé comme OR (voir "'Dotation *'"OR[Demande] = ... et suivants)
+ Dans "OR[Tache en cours])"'Validation Budgétaire'", manque le =
+ Après écriture de ta formule, recompte le nombre de parenthèses ( et ) : Il doit y en avoir un nombre pair
+ Simplifie grace à la fonction IN :
Ca devrait donner ceci :
SQL = "SELECT * FROM [" & Feuille & "$] " & _
" WHERE ( [Demande] Like 'Modernisation %'" & _
" OR [Demande] Like 'Enlèvement %'" & _
" OR [Demande] = 'TELEPHONE FIXE IP'" & _
" OR [Demande] Like 'Restitution%'" & _
" OR [Demande] Like 'Dotation %'" & _
" OR [Demande] Like 'POSTE %'" & _
" OR [Demande] Like '% PDA %')" & _
" AND [Tache en cours] In ('Validation Hiérarchique N+1', " & _
"'Validation Technico-Fonctionnelle', " & _
"'Validation Budgetaire', " & _
"'Validation Budgétaire')" & _
" AND [Site beneficiaire] In ('NOV', 'AJJ', 'EQV', 'K22', 'PBK', " & _
"'QLG', 'PDS', 'S44', 'S79', 'Q10', " & _
"'SQY', 'TPZ')"
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Sytchev3
Messages postés89Date d'inscriptionjeudi 17 mars 2005StatutMembreDernière intervention26 avril 2012 27 févr. 2007 à 15:44
Essaye sans les parenthèses :
SELECT * FROM [" & Feuille & "$] WHERE
[Demande] = "'Modernisation *'"
OR [Demande] = "'Enlèvement *'"
OR [Demande] = "'TELEPHONE FIXE IP'"
OR [Demande] = "'Restitution*'"
OR [Demande] = "'Dotation *'"
OR [Demande] = "'POSTE *'"
OR [Demande] = "'* PDA *'"
AND [Tache en cours] = "'Validation Hiérarchique N+1'"
OR [Tache en cours] = "'Validation Technico-Fonctionnelle'"
AND [Tache en cours] = "'Validation Budgetaire'"
OR [Tache en cours]="'Validation Budgétaire'"
AND [Site beneficiaire] = "'NOV'"
OR [Site beneficiaire] = "'AJJ'"
OR [Site beneficiaire] = "'EQV'"
OR [Site beneficiaire] = "'K22'"
OR [Site beneficiaire] = "'PBK'"
OR [Site beneficiaire] = "'QLG'"
OR [Site beneficiaire] = "'PDS'"
OR [Site beneficiaire] = "'S44'"
OR [Site beneficiaire] = "'S79'"
OR [Site beneficiaire] = "'Q10'"
OR [Site beneficiaire] = "'SQY'"
OR [Site beneficiaire] = "'TPZ'"
mon analyseur de requêtes me dit qu'il n'y a pas d'erreur.
Par contre quand tu mets une valeur en dur (sans passer par une variable par exemple) dans ta requête du style [Site beneficiaire] = "'TPZ'" tu n'est pas obligé de mettre les " " tu peux directement mettre [Site beneficiaire] = 'TPZ'