|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Bonjour,
Je travaille sous Access 2007 et j'ai besoin à un moment donné d'afficher un résultat contenant les enregistrements donc l'intitulé commence par "TC". J'ai donc effectué la requête suivante : Code SQL :
SELECT [IDX ID] FROM FICHES_POSTE WHERE [INTITULE] LIKE 'TC*' Pour info, j'avais avant de rajouter cette ligne une requête assez imposante avec jointures et union qui fonctionnait exactement comme il faut. Actuellement, ma requête complète avec la requête sur laquelle je demande votre aide affiche les mêmes résultats que si elle n'y était pas. Or, ce n'est pas possible. Merci d'avance pour vos réponses. Cordialement, Prettyletter Edit : J'ai testé ma requête seule, en affichant les résultats dans une liste et elle ne fonctionne pas. J'ai testé les lignes suivantes : Code :
Me.lstTest.RowSource = "SELECT [INTITULE] FROM FICHES_POSTE WHERE (([INTITULE] LIKE ""TC*""));" Code :
Me.lstTest.RowSource = "SELECT [INTITULE] FROM FICHES_POSTE WHERE (([INTITULE] LIKE 'TC*'));" Code :
Me.lstTest.RowSource = "SELECT [INTITULE] FROM FICHES_POSTE WHERE (([INTITULE] LIKE ""TC%""));" Code :
Me.lstTest.RowSource = "SELECT [INTITULE] FROM FICHES_POSTE WHERE (([INTITULE] LIKE 'TC%'));" Code :
Me.lstTest.RowSource = "SELECT [INTITULE] FROM FICHES_POSTE WHERE [INTITULE] LIKE 'TC*';" Code :
Me.lstTest.RowSource = "SELECT [INTITULE] FROM FICHES_POSTE WHERE [INTITULE] LIKE 'TC%';" Code :
SELECT FICHES_POSTE.INTITULE FROM FICHES_POSTE WHERE (((FICHES_POSTE.INTITULE) LIKE "TC*")); |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Prettyletter,
Via l'assistant graphique, qu'obtiens-tu, en saisissant Comme "TC*" ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Bonjour Richard,
Désolé, j'avais oublié de l'indiquer et j'ai édité mon post avant que tu me répondes. J'ai obtenu le résultat que je souhaitais en utilisant le mode graphique. J'ai donc regardé la requête générée et je l'ai copiée dans l'éditeur VBA, seule. Je demande l'affichage de ces résultats de cette requête dans une liste, mais rien ne s'affiche. J'ai pourtant bien testé en affichant une MsgBox avant pour vérifier que le code était bien exécuté, j'ai mis une requête différente qui retournait bien des résultats.. Le problème vient donc bien de la requête. Est-ce que ça pourrait être dû à l'utilisation des guillemets? |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Je ne connais pas VBA, désolé.
Pour moi, en copiant/collant le code SQL généré par la requête qui fonctionne (sans "with..."), cela devrait rouler : via l'assistant de création de formulaire, sur un formulaire de test, essaies de copier/coller ce code en source de données.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
J'ai trouvé mon erreur grâce à toi. J'ai créé un nouveau formulaire, une liste, puis je me suis rendu compte en la créant que lors de la manipulation, j'ai sélectionné un seul champ mais la case "utiliser la clé en champ caché" était restée cochée. Ma première colonne, qui contenait alors mon résultat, était cachée.
Ma requête fonctionne donc depuis le début. C'est l'intégration de ce bout de requête dans la requête principale qui est fausse. Je ne pense pas que l'on puisse m'aider pour ça car elle est certainement très difficile à comprendre quand on ne l'a pas écrite. Je tente quand même ! Code :
|
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Je te suggère de faire tourner ta requête (6 requêtes imbriquées), sans les variables, donc avec des valeurs "en dur".
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Cela ne changera rien puisque les variables ne posent pas de problème. La requête produit le résultat demandé, c'est juste l'ajout de la dernière ligne avant la clause ORDER BY qui pose problème, et elle ne contient aucune variable. A mon avis, c'est plutôt l'utilisation du OR qui ne convient pas. Le problème est que le AND ne convient pas non plus, donc je dois chercher une autre solution.
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Citation:
Vérifies, également, que ta variable strFiche est remplie correctement via un msgbox, par exemple.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Oui, si je supprime cette ligne, la requête fonctionne, mais elle n'affiche pas en plus les enregistrements des fiches de poste commençant par "TC".
J'ai trouvé une partie du problème cependant. Je n'avais pas spécifié dans ma deuxième jointure la sélection des fiches commençant par "TC", et j'ai mis des choses inutiles. Cette requête est exécutée dans un bloc conditionnel, uniquement s'il s'agit de la fiche de poste du nom de "TC". Elle doit donc afficher les résultats de TC, TC 1, TC 2, etc. Donc lorsqu'on exécute cette, requête, pas besoin de demander les résultats de la fiche de poste courante + ceux des fiches commençant par TC, il suffit de demander celles commençant par TC tout simplement. Voici donc ma nouvelle requête : Code :
Maintenant, j'ai une erreur sur l'expression JOIN et je pense que c'est à cause de l'utilisation de IN qui renvoie plusieurs résultats. Edit : J'avais oublié une parenthèse. Access me met une erreur comme quoi il ne peut pas me trouver l'objet " ". Je continue mes recherches. |
||
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
Bonjour,
De retour au boulot après un bon weekend, je ne trouve toujours pas comment modifier ma requête. Je me demande si cela vient du IN dans la jointure, mais je ne sais pas comment m'y prendre autrement.. Si quelqu'un sait résoudre ce problème, je suis à l'écoute ! Bonne journée ! Edit : L'erreur vient bien du IN, je l'ai remplacé par la condition que j'avais mise avant et je n'ai plus d'erreur. En revanche, bien sûr, ce ne sont pas les résultats souhaités. Comment puis-je procéder pour sélectionner plusieurs éléments dans une jointure si je ne peux pas utiliser IN ? |
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Prettyletter,
Je n'ai pas le temps de débugger ton code SQL. Je te suggère, comme précédemment, de passer par l'assistant : nous serons sûrs, alors, que la syntaxe générée est la bonne. Eventuellement, découper ta requête.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#12 | ||
|
Nouveau Membre du Club
![]() Marc BellêtreÉtudiant Inscription : mars 2011 Messages : 59 ![]() |
J'ai finalement trouvé la solution !
J'ai repris la requête presque intégralement et c'était plus simple que ce que j'imaginais. Voilà le résultat final, si jamais ça intéresse quelqu'un : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com