Requete select where listbox = all [Résolu]

Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
- 8 juil. 2011 à 20:11 - Dernière réponse :
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
- 23 juil. 2011 à 14:02
Salut, je souhaite selectionner les champ avec le critere all de la listbox, comment dois-je proceder?
Afficher la suite 

Votre réponse

19 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 22:12
3
Merci
Attends, là :
si un critère doit répondre à tous les critères (!!!) il suffit de ne pas mentionner ce critère !

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
Messages postés
130
Date d'inscription
jeudi 16 avril 2009
Dernière intervention
8 décembre 2015
22 juil. 2011 à 22:29
3
Merci
tu peux faire un truc du genre

"select * from table1 where champ1 in (" & listbox.list(0) & "," & listbox.list(1) & ")"

pour une listbox à deux éléments sinon tu continus jusqu'à ton dernier élément.

Est ce que ça répond à ta question ?



nitho l'amateur

Merci cs_nitho 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_nitho
Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 22:38
3
Merci
et si ton "All" veut dire tous (mais eux seuls) les critères correspondant à mes items de la listbox (et pas d'autres) ===>> tu as déjà eu une réponse également. J'en ajoute une autre (===>> avec une succession de Or)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
8 juil. 2011 à 20:55
0
Merci
Bonjour,
C'est quoi, le "critère all de la listbox" ?

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 18:07
0
Merci
j'ai donne différente valeur a la listeaux, par ces valeur, tout, une seule requête qui s’exécute, avec le critère listbox, lorsque cette listbox contient la valeur tout que faire???

code:

select * from table1 where champ1 = listbox
Commenter la réponse de toufiqihaddou
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 18:11
0
Merci
Ta requête n'est jamais qu'une chaîne de caractères !
Si donc tu veux y insérer une variable contenant "All" ===>>
tarequete = "Select " & ta_variable & " From ...... etc ..."


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 20:52
0
Merci
oui je sais, listbox est dans la condition where pas devant from, et elle contienne des valeurs qui se trouve dans la colonne concerne,
par exemple si je choisie 3 dans la listbox, la requete doit m’afficher tout les lignes qui contiennent 3, alors lorsque l'utilisateur choisie all je dois faire tout simplement un test de if pour lancer deux requêtes, une fois pour le critère 3 et une fois pour all, je cherche s'il y a une autre solution, c tout
Commenter la réponse de toufiqihaddou
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 22:10
0
Merci
Désolé, mais là, je ne te pige plus du tout....
Je passe la main à ceux qui comprennent ce dont il s'agit


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 22:15
0
Merci
si, il faut faire comme ca, mais je disais est ce qu'on peut faire quelque chose d'autre, c'est pas grave laisse tombe, merci pour tout
Commenter la réponse de toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 22:16
0
Merci
parceque je dois utiliser deux requêtes, on ne peut pas utilise une seule?
Commenter la réponse de toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 22:31
0
Merci
ouiii, mais je dois integrer dans la requete seulement celle selectionne par l'utilisateur
Commenter la réponse de toufiqihaddou
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 22:35
0
Merci
Je t'ai alors déjà répondu :
Si "All" sélectionné ===>> pas de critère à spécifier pour ce champ (un critère = une obligation de choix)
Si autre item sélectionné ===>> Where ce_champ = ce_critère/item_sélectionné !

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 22:35
0
Merci
Je peux utiliser deux requetes, la 1er contient :
select * from table1 where champ1 = listbox.value

et la deusieme requete sans le where pour selectionner tout.

on ne peut pas utiliser une seul requete qui s'atisfait l'utilisateur lorsqu'il fait son chois?
Commenter la réponse de toufiqihaddou
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 22:41
0
Merci
Je peux utiliser deux requetes, la 1er contient :
select * from table1 where champ1 = listbox.value

et la deusieme requete sans le where pour selectionner tout.

on ne peut pas utiliser une seul requete qui s'atisfait l'utilisateur lorsqu'il fait son chois?

Là, je crains que cela ne devienne totalement incompréhensible !
Donne un exemple simple d'une telle nécessité (je commencerai alors à te comprendre peut-être).

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 22:41
0
Merci
et pour gérer les deux au cote programmation,

je fais un test si listbox.value = tout j’exécute la deusieme

j'aimerai savoir est ce qu'on peut faire une seul requête sans passer par le test car j'ai plusieurs valeur dans la liste box avec le critere all a la fin
Commenter la réponse de toufiqihaddou
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
22 juil. 2011 à 22:45
0
Merci
Voila mon exemple :
Call connect

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "select * from Table_principale order by [ID OZ]", cns, adOpenStatic, adLockOptimistic

Dim bSQL As String
For i = 0 To 29
bSQL = bSQL & "[" & rs.Fields(i).name & "],"
Next i
bSQL = bSQL & "[" & rs.Fields(30).name & "]"

If Combo1.Text "Tout" And Combo2.Text "Tout" Then

Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#));", cns, adOpenStatic, adLockOptimistic

ElseIf Combo1.Text "Tout" And Combo2.Text "Vide" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.F19) is NULL);", cns, adOpenStatic, adLockOptimistic

ElseIf Combo2.Text = "Vide" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.F19) is NULL) AND (Table_principale.[CAT PUB])='" & Combo1.Text & "';", cns, adOpenStatic, adLockOptimistic

ElseIf Combo1.Text = "Tout" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.F19)=" & Combo2.Text & ");", cns, adOpenStatic, adLockOptimistic

ElseIf Combo2.Text = "Tout" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.[CAT PUB])='" & Combo1.Text & "');", cns, adOpenStatic, adLockOptimistic

Else
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.[CAT PUB])='" & Combo1.Text & "' AND (Table_principale.F19)=" & Combo2.Text & ");", cns, adOpenStatic, adLockOptimistic

End If
Commenter la réponse de toufiqihaddou
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 22:49
0
Merci
quel est le problème, une autre fois ?
Soit toto la valeur de l'(item sélectionné ===>>

ma_requete = "Select * from ... "'
If toto <> "tout" then
ma_requete ma_requete & "where le_champ " & toto

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
22 juil. 2011 à 22:53
0
Merci
Ton problème me parait finalement n'être que celui de la compréhension de la construction, par concaténation conditionnelle, d'une chaîne de caractère (requête SQL ou autre) !


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Commenter la réponse de ucfoutu
Messages postés
38
Date d'inscription
jeudi 13 janvier 2011
Dernière intervention
23 juillet 2011
23 juil. 2011 à 14:02
0
Merci
Salut, dsl je n’étais pas la a cause de problème de connexion, je n'ai aucun problème, tout çà fonctionne, je veux seulement amélioré mon code, merci
Commenter la réponse de toufiqihaddou

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.