Listbox multi-critères et option "select all" - comment adapter ce code?
Bonjour,
Dans mon project j'utilise actuellement le code de ce site (http://www.tek-tips.com/faqs.cfm?fid=6099) afin de pouvoir faire une sélection multiple dans une listbox, les éléments sélectionnés servent ensuite de paramètres dans une requête.
Jusque la, pas de problème, ça fonctionne bien.
Le problème est que j'ai souhaité ajouté dans ma listbox la possibilité pour l'utilisateur de sélectionner (All) pour lui éviter de devoir sélectionner tous les éléments de la listbox (j'ai ajouté (all) via une requête union - je ne sais pas si c est la meilleur solution).
J'ai essayé de remplacer cette partie du code original:
Code:
1 2
| If lbo.ItemsSelected.Count = 0 Then
IsSelectedVar = True 'return all if no items selected |
par
Code:
1 2
| If strListBoxName.Value = "(All)" Then
IsSelectedVarClients = True 'return all if no items selected |
Le but etant de dire au code VBA "Si l'utilisateur a sélectionné (All) tu peux considérer que c est comme si il avait tout sélectionner"
.... mais sans succès - ça ne fonctionne pas du tout.
Bref, votre aide me serait précieuse!
Merci d'avance!
Mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Function IsSelectedVarClients( _
strFormName As String, _
strListBoxName As String, _
varValue As Variant) _
As Boolean
'strFormName is the name of the form
'strListBoxName is the name of the listbox
'varValue is the field to check against the listbox
Dim lbo As ListBox
Dim item As Variant
If IsNumeric(varValue) Then
varValue = Trim(Str(varValue))
End If
Set lbo = Forms(strFormName)(strListBoxName)
If strListBoxName.Value = "(All)" Then
IsSelectedVarClients = True 'return all if no items selected
Else
For Each item In lbo.ItemsSelected
If lbo.ItemData(item) = varValue Then
IsSelectedVarClients = True
Exit Function
End If
Next |
et
Code:
SELECT T_NewLaunches.[Client Name] FROM T_NewLaunches UNION SELECT "(All)" FROM T_NewLaunches
(j'ai utilisé union pour pouvoir ajouter "all" dans ma listbox)