IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Listbox multi-critères et option "select all" - comment adapter ce code?


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        If lbo.ItemsSelected.Count = 0 Then
        IsSelectedVar = True 'return all if no items selected
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  2. #2
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Salut j'ai lus un peu ton code et je dirai essaye en fesant ce changement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     If lbo.Value = "(All)" Then
        IsSelectedVarClients = True 'return all if no items selected
    et la requete laisse la comme elle étais soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Client Name.*
    FROM T_NewLaunches
    WHERE IsSelectedVarclients("T_NewLaunches","Client Name",[EmployeeID])=-1;'Je ne suis pas sur quel est ton champ et quel est ta table donc tu vérifira cela

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Merci pour ta réponse.
    J'ai changé le code, malheureusement cela ne semble pas fonctionner. Lorsque je selectione (All), cela ne retourne aucun resultat.
    J'ai attaché ma database à ce poste si cela peut aider
    Merci,

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Ok, trouvé la solution.

    Il fallait remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If lbo.ItemData(item) = varValue Then
                IsSelectedVarClients = True
                Exit Function
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If lbo.ItemData(item) = varValue or lbo.ItemData(item) ="(All)" Then
                IsSelectedVarClients = True
                Exit Function
    Tks

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Requête via listbox multi-critères --> Possible sans VBA ?
    Par jehhej dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 15/11/2013, 14h08
  2. [AC-2010] Requête via listbox multi-critères sans VBA --> Possible via macro?
    Par Greg12345 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/11/2011, 20h20
  3. Recherche Multi-Critères et boutons options
    Par guenfood dans le forum Access
    Réponses: 1
    Dernier message: 04/06/2006, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo