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 :

Récupérer les valeurs d'une combobox à sélection multiple


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut Récupérer les valeurs d'une combobox à sélection multiple
    Bonjour la communauté,

    Savez-vous comment récupérer les informations contenues dans un champ de table créé sous forme de liste déroulante à sélection multiple ?
    L'idée est la suivante :
    - j'ai besoin de mettre dans le champ d'une table certains enregistrements d'une autre table
    - j'ai besoin de savoir quels enregistrements ont ainsi été sélectionné

    Je pensais pouvoir m'en sortir avec le code suivant (qui semble fonctionner pour les listbox mais pas les combobox) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim varI As Variant
     
    If Liste.ItemsSelected.Count = 0 Then
        MsgBox "Aucune sélection"
    Else
        For Each varI In Liste.ItemsSelected
            MsgBox Liste.ItemData(varI)
        Next varI
    End If
    Malheureusement, il indique toujours "Aucune sélection", quelque soit ce que j'ai sélectionné ou non... Avez-vous une idée ? Perso, je sèche complètement

    Un grand merci par avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2011
    Messages : 65
    Par défaut
    En fait, j'ai peut-être trouvé une solution, mais très alambiquée. Donc si quelqu'un a quelque chose de plus simple, je suis carrément preneur !

    L'idée est d'explorer la table avec les valeurs de ma liste. Il semblerait, en effet, qu'un champ "Liste.Value" soit créé dans ma table lorsque je crée une liste déroulante à sélection multiple.

    Aussi, voici ce que j'ai mis comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Enreg As DAO.Recordset
     
    Set Enreg = CurrentDb.OpenRecordset("SELECT Liste.Value FROM Ma_Table WHERE [N°] = " & N° & " ORDER BY Liste.Value ASC")
    Do While Not Enreg.EOF
        MsgBox Enreg.Fields("Liste.Value")
        Enreg.MoveNext
    Loop
    Il regarde dans la table "Ma_Table" tous les champs dont le N° (qui est la clé primaire) est égal à la valeur du contrôle N°, se trouvant dans mon formulaire (donc, le n° de l'enregistrement actif).
    Les résultats qui sont donnés correspondent aux N° (clé primaire) de la table d'où provient les éléments mis dans Liste.

    Encore une fois, ça me paraît bien compliqué. Et un "itemsSelected" fonctionnant me faciliterait la vie...

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    En fait les listes déroulantes n'offrent pas la sélection multiple. Seules les listes simples l'autorise.
    Ces 2 contrôles ne sont accessibles que sur un formulaire.

    Ce que tu as utilisé c'est un champ multi-valué et c'est la seule méthode que je connaisse pour récupérer les informations d'un champ multi-valué qui est en réalité une table dans un champ.

    Et si on est strict sur la 3ième forme normale (la modélisation recommandée pour une BD relationnelle), on utilisera plutôt une vraie table en relation avec la table concernée.
    Mais on perd l'interface sympa où on peut juste cocher une valeur dans une liste déroulante.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Récupérer les valeur d'une liste à choix multiple
    Par steeveb dans le forum VBA Access
    Réponses: 1
    Dernier message: 28/04/2012, 08h26
  2. [OL-2010] récupérer les valeurs d'une combobox
    Par benou72 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 03/02/2011, 11h48
  3. Récupérer les valeurs d'une liste déroulante multiple
    Par noobyyy dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 27/05/2010, 22h43
  4. Récupérer les valeurs d'une combobox
    Par Many31 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/07/2009, 15h16
  5. Réponses: 3
    Dernier message: 12/05/2009, 19h07

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