Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

Forms: Utiliser une liste à sélection multiple comme paramètre d'une requête

Author(s)
Dev Ashish

Utiliser une liste à sélection multiple comme paramètre d'une requête.

(Q) Je possède une liste à sélection multiple sur mon formulaire. J'aimerais passer chaque valeur choisie comme paramètre à une requête. Comment faire?

(A) Contrairement à une liste simple qui fourni une valeur unique comme paramètre à une requête, l'option de sélection multiple, MultiSelect, ne permet pas une utilisation aussi simple. En effet, la liste ne concaténera pas automatiquement tous les items choisis. Il faut le faire soi-même.

Note: Vous pouvez toujours passer le résultat comme paramètre de la clause WHERE par l'intermédiaire d'une fonction qui retournera le paramètre, ou un contrôle, caché, sur un formulaire où on déposera la dite valeur.

Par exemple,

'******************** Code Start ************************
Dim frm As Form, ctl As Control
Dim varItem As Variant
Dim strSQL As String
    Set frm = Form!frmMyForm
    Set ctl = frm!lbMultiSelectListbox
    strSQL = "Select * from Employees where [EmpID]="
    'On suppose que la valeur de type long, [EmpID], est le champ contre
    'lequel on se comparera aux valeurs choisies dans la
    'liste à choix multiple
    For Each varItem In ctl.ItemsSelected
        strSQL = strSQL & ctl.ItemData(varItem) & " OR [EmpID]="
    Next varItem

    'Enlever le dernier segment
    strSQL=left$(strSQL,len(strSQL)-12))
'******************** Code end ************************

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer