<Retour Grenier>
Question
Comment
mettre en place une liste à sélection multiple, et la gérer en Visual Basic ?
Pour utiliser ce qui suit, vous avez besoin de savoir définir un événement dans un
formulaire, compiler du code, et exécuter du code.
Réponse
On suppose qu'une table Clients (par exemple) est créée.
- Ouvrez un formulaire en mode Création.
- Si nécessaire, faites apparaître la boîte à outils (par le menu Affichage
/ Boîte à outils ou l'icône
).
- Vérifiez que l'Assistant Contrôle
est activé.
- Cliquez sur l'icône "Liste modifiable"
puis cliquez sur le
formulaire.
- Suivez les étapes de l'assistant pour construire votre liste, basée sur
la table Clients.
- Une fois la liste terminée, cliquez dessus (le formulaire étant toujours
en mode Création) puis faites apparaître ses propriétés en cliquant sur
l'icône

- Dans les propriétés de l'onglet "Autres",
donnez à la propriété "Nom" la valeur "lstClients".
- Toujours dans ces propriétés, donnez à la propriété "Sélection
multiple" la valeur "Simple" (ou
"Etendu").
Si vous testez maintenant votre formulaire, il est possible de sélectionner
plusieurs clients dans la liste.
- Réouvrez le formulaire en mode Création.
- Créez maintenant un bouton de commande (sans assistant).
- Grâce aux propriétés, nommez le bouton btnListe.
- Dans l'événement "Sur clic" du bouton, tapez
le code suivant, qui se charge d'afficher l'un après l'autre les clients sélectionnés
(ou un message d'avertissement si aucun client n'a été sélectionné) :
Private Sub btnListe_Click()
Dim varI As Variant
If Me.lstClients.ItemsSelected.Count = 0 Then
MsgBox "Aucun client n'a été sélectionné"
Else
For Each varI In Me!lstClients.ItemsSelected
MsgBox Me!lstClients.ItemData(varI)
Next varI
End If
End Sub
A vous maintenant d'aménager pour en faire bon usage ! Vous pouvez par
exemple vous en servir pour filtrer un formulaire ou un état (voir les
commandes OpenForm ou OpenReport).
Pour plus de détails, consultez bien sûr l'aide d'Access concernant la
collection ItemsSelected et la propriété ItemData.