|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
Bonjour à tous,
Je recherche de l'aide sur un point au sujet duquel je ne crois pas avoir trouvé de post sur le forum. Pour planter le décors, je gère une liste principale que je vais appeler [Table]. Pour faire un extract de certains éléments de cette table je fais une sélection d'enregistrements en remplissant une zone de liste[ListeSelection] qui pointe un champs particulier de [Table]. De là, je voudrais faire une requête récupérant les enregistrements de [Table] correspondant aux éléments listés dans[ListeSelection]. Lorsque je paramètre le champs de ma requête en pointant sur ma zone de liste (dans critère), je ne récupère que l'enregistrement qui correspond au critère sélectionné dans ma zone de liste. Par contre, je n'arrive pas à commander la requête pour extraire les enregistrements correspondant à tous les éléments de ma zone de liste. Il y a surement une subtilité dans l'écriture du code à mettre dans le critère de ma requête, mais là, je cale. Si quelqu'un peut éclairer ma lanterne, je suis preneur Merci d'avance pour votre aide. Cordialement |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
Bonjour,
cela dépend de la propriété contenu de ta zone de liste. Est-ce une requête ou une liste séparée par des points-virgules ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
et bien en fait, il n'y a rien dans la propriété contenu de cette zone de liste puisque son contenu est variable.
En fait, dans mon programme, je pars d'une liste vide et en fonction des éléments que je choisi dans la liste [Table], je rempli la zone de liste[ListeSelection]. Ensuite, une fois[ListeSelection] remplie des éléments que je souhaitais sélectionner, je veux pouvoir sortir une requête qui a comme critère de filtrage tous les éléments présents dans[ListeSelection]. Le problème est que[ListeSelection] a un contenu dynamique (j'entends par là qu'il varie et n'est pas paramétré à l'avance). C'est là qu'est l'os, puisque je ne sais pas comment paramétrer ma requête pour utiliser le contenu global (c'est à dire tous les éléments) de ma zone de liste. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
Cette requête, veux-tu qu'elle soit permanente ? Ou peux-tu la construire au moment où tu connais les valeurs du contenu de ta zone de liste ?
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
Et bien, je n'ai pas besoin qu'elle soit permanente.
L'idée est de pouvoir l'exporter ponctuellement. |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
Donc, il suffit d'en construire le sql dès l'instant que tu connais les composantes de la zone de liste.
A l'aise avec le code ? Ou besoin d'un coup de main ? |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
Besoin d'un coup de main !
Surtout pour le code SQL, parce que c'est LE point que je ne maitrise pas particulièrement dans l'exercice. |
|
|
00
|
|
|
#8 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
Citation:
Poste le sql de cette requête. |
|
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
Voila le SQL de ma requête, sans le filtrage
Code :
Voila |
||
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
J'attendais la requête qui fait référence au contrôle du formulaire.
J'ai besoin du nom du formulaire et du nom du contrôle zone de liste. |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
Ah pardon,
Oui alors mon formulaire s'appelle [ImprimCRDebrief] et la zone de liste[ListeSelection]. Initialement, j'avais mis cette requête en SQL après le paramétrage habituel au début : .......... WHERE ((([Table].[Customer Rank])=[Formulaires]![ImprimCRdebrief]![ListeSelection])); Avec ce code, seul l'élément sélectionné est dans la requête. Dans mon cas, je voudrais tous les éléments de la zone de liste (si c'est possible ? |
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
Quel est le type (texte, numérique, date ?) de [Customer Rank] ?
|
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
C'est un champs texte (STRING)
|
|
|
00
|
|
|
#14 | ||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
1° copie n'importe quelle requête et baptise la copie "rSouhaitee".
2° dans ton formulaire, ajoute un bouton "btConstriure" Voici le code que tu dois associer au clic du bouton : Code :
Les commentaires devraient t'aider à comprendre ce qui s'y passe. Saches aussi que si tu places le curseur au milieu d'un mot-clé et que tu enfonces <F1> l'aide Access s'ouvre à la bonne page. Reviens si problème. Ps quand tu auras un peu de temps lis ceci : - conventions typographiques Code :
http://argyronet.developpez.com/office/vba/convention/ |
||
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
C'est presque ça !
En fait, ce code me récupère bien le contenu de la zone de liste, mais il génère une commande SQL avec des crochets [] pour les éléments de la liste alors que je pense qu'il faudrait que ce soit des guillemets " ". En effet, avec les crochets, il recherche le contrôle qui se nomme ainsi alors qu'il faut qu'il trie le contenu. Et là, je ne sais pas comment il faut le taper en vba, au niveau de la ligne ClauseWhere = ClauseWhere & "[Customer Rank]=" & liste(i) & " or " |
|
|
00
|
|
|
#16 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
Mon code ,n'ajoute pas de crochets.
Dans "contenu" de ta zone de liste, je m'attends à trouver quelque chose comme " "a";"c" " (puisque texte). J'ai testé avant de te donner ma réponse. Qu'as-tu dans contenu ? |
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
et bien lorsque je regarde le contenu de la zone liste si des éléments sont intégrés, j'ai a;b;c et non "a","b","c"
Je viens de percuter que c'est ce que tu m'a demandé au tout début.....mais en fait, je n'avais pas vu qu'on pouvais visualiser les propriétés de l'élément à chaud, pendant que le formulaire tourne.... |
|
|
00
|
|
|
#18 | ||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 238 ![]() |
Dans ce cas, un chouia différent :
Code :
|
||
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Lionel PIGNIER Inscription : décembre 2009 Messages : 18 ![]() |
YES !!!
![]() ![]() ![]() ![]() ![]() Ca marche nickel. En fait, il me fallait juste un peu d'aide sur le code SQL. Merci pour le support Claude ! C'est top. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com