Requete select where listbox = all

Résolu
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011 - 8 juil. 2011 à 20:11
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre 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?

19 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 22:12
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
3
cs_nitho Messages postés 130 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 8 décembre 2015
22 juil. 2011 à 22:29
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 22:38
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 juil. 2011 à 20:55
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 18:07
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 18:11
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
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 20:52
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 22:10
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
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 22:15
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
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 22:16
parceque je dois utiliser deux requêtes, on ne peut pas utilise une seule?
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 22:31
ouiii, mais je dois integrer dans la requete seulement celle selectionne par l'utilisateur
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 22:35
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
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 22:35
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?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 22:41
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
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 22:41
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
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
22 juil. 2011 à 22:45
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 22:49
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2011 à 22:53
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
0
toufiqihaddou Messages postés 38 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 23 juillet 2011
23 juil. 2011 à 14:02
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
0
Rejoignez-nous