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

IHM Discussion :

Choix multiple liste déroulante base Access


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 6
    Points
    6
    Par défaut Choix multiple liste déroulante base Access
    Bonjour, j'avance petit à petit dans un projet Access. je développe actuellement un formulaire de matériel. J'ai actuellement une liste déroulante région, une pour les centres et une pour les sites. J'ai trois tables importantes qui sont les tables matériels, région, centre et site. Les listes déroulantes se mettent a jour en fonction de ma supérieure (la liste centre n'affiche que les centres de la région sélectionnée...).

    Toutefois je ne peux sélectionner qu'une valeur dans ces listes. Ainsi, pour chaque critères (région, centre , site) j'aimerais pouvoir sélectionner plusieurs valeurs (plusieurs régions par exemple).

    Pour l'instant je ne peux donc avoir que les matériels d'une seule région, un seul centre, ou un seul site.

    Je me demande donc quel contrôle de formulaire est idéal pour faire ce là et surtout comment le mettre en place.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    On ne peut avoir qu'un choix sur une liste déroulante.

    Il faut que tu utilises une zone de liste et que tu regardes du coté de la propriété Sélection multiple.

    Philippe

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 6
    Points
    6
    Par défaut récupérer valeurs de la liste
    Merci pour cette réponse mais je souhaiterais un éclaircissement. Jusque là je n'avais aucun mal a récupérer les valeurs de mes listes déroulantes dans mes requêtes. En effet je n'avais qu'a mettre par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * 
    FROM MATERIEL REGION = [Forms]![FORMULAIRE MATERIEL]![Liste deroulante region]
    et celà allait chercher la valeur.

    A présent je ne vois pas comment récupérer la valeur d'une liste a sélection multiple puisque comme son nom l'indique il pourra y avoir plusieurs valeurs de sélectionnées dans cette liste.

    En somme ma question est la suivante : Puis-je le faire des requêtes avec des listes de choix non déroulantes de la même manière que je le faisais avec les listes déroulantes dans le but de pourvoi sélectionner plusieurs valeurs.

    Merci d'avance.

  4. #4
    Membre habitué Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Points : 148
    Points
    148
    Par défaut
    J'utiliserait du VBA pour alimenter la liste...
    En fait, lorsque tu sélectionne plusieurs valeurs dans une list box, les données sont présentées comme un tableau, tu dois donc lancer une boucle:

    Code VBA : 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
     
     
    Dim lngBoucle As Integer
    Dim strVariable as String
     
     
        For lngBoucle = 0 To ListBox1.ListCount - 1
     
            If ListBox1.Selected(lItem) = True Then
     
                strVariable = strVariable & ListBox1.List(lngBoucle)
     
                ListBox1.Selected(lngBoucle) = False
     
            End If
     
        Next
     
    End Sub

    Ce que le code fait, c'est que pour chacun des éléments des données de la list box, inscrit la valeur dans telle variable. Donc, tu pourrais avoir un code comme ça:

    Code VBA : 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
    24
    25
    26
    27
    28
    29
    30
     
     
    Dim lngBoucle As Integer
    Dim strVariable as String
     
     
        For lngBoucle = 0 To ListBox1.ListCount - 1
     
            If ListBox1.Selected(lItem) = True Then
     
                strVariable = strVariable & ListBox1.List(lngBoucle) & ","
     
                ListBox1.Selected(lngBoucle) = False
     
            End If
     
        Next
     
    'Enlever la dernière virgule
    strVariable = Left(strVariable, Len(strVariable) - 1)
     
    'Ajouter les informations SQL à la Variable
    strVariable = "SELECT * FROM MATERIEL WHERE REGION = " & strVariable
     
     
    ListBox2.RowSource = strVariable       'Je ne suis pas certain a 100% du nom de la propriété...
    ListBox2.Requery
     
     
    End Sub

    Bon Courage!!
    Amerex
    «La chance sourit aux audacieux»
    Ms Access, Ms Excel, Ms FrontPage, Expression Web, Crystal, UniVerse, Basic, SQL, PHP, VBA...

    N'oubliez pas de noter les messages!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse. J'ai essayé d'utiliser le code que tu m'as donné en l'adaptant a mon projet. Voila ce que ça donne :

    Code VBA : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    Private Sub Liste27_Click()
    Dim lngBoucle As Integer
    Dim strVariable As String
     
     
        For lngBoucle = 0 To List27.ListCount - 1
     
            If Liste27.Selected(lItem) = True Then
     
                strVariable = strVariable & Liste27.List(lngBoucle) & ","
     
                ListBox27.Selected(lngBoucle) = False
     
            End If
     
        Next
     
    'Enlever la dernière virgule
    strVariable = Left(strVariable, Len(strVariable) - 1)
     
    'Ajouter les informations SQL à la Variable
    strVariable = "SELECT MATERIEL.[Type matériel], MATERIEL.Fournisseur, CENTRE.Centre, CENTRE.[Code region], MATERIEL.[Centre  de cout], MATERIEL.Marque, MATERIEL.Modèle, MATERIEL.[Multifonction Fax], MATERIEL.[Multifonction Scanner], MATERIEL.[Num serie]"
    FROM MATERIEL, CENTRE, Region, SITE
    WHERE MATERIEL.[Code site] = SITE.[Code site] And SITE.[Code centre] = CENTRE.[Code centre] And CENTRE.[Code region]
    Region = " & strVariable 
    GROUP BY MATERIEL.[Type matériel], MATERIEL.Fournisseur, CENTRE.Centre, CENTRE.[Code region], MATERIEL.[Centre  de cout], MATERIEL.Marque, MATERIEL.Modèle, MATERIEL.[Multifonction Fax], MATERIEL.[Multifonction Scanner], MATERIEL.[Num serie], CENTRE.[Code centre], REGION.[Code region], CENTRE.[Code centre]"
     
     
    [Requête region et centre sous-formulaire].RowSource = strVariable      
    [Requête region et centre sous-formulaire].Requery
     
     
    End Sub

    Voici l'erreur qui est affichée : "Erreur de compilation : membre de méthode ou de donnée introuvable" sachant que c'est le ".List" que le compilateur n'aime pas.

    Sauriez vous d'ou viens le problème?

    NB : ma listbox "list27" liste les régions comprises dans la table REGION.

    Merci d'avance.

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Haïti

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    bonjour
    pour les combobox a choix multiple pour recuperer les valeur avec ".Liste(i)" ca ne fonctionne pas comment pouriez vous m'aider svp parce c'est super urgent j'aimerais savoir cmt recuperer les valeur selectionner dans un commbobox a choix mutiple , merci

  7. #7
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Ci-joint un exemple de sélection avec choix multiples.

    Tu sélectionnes une ou plusieurs catégories. La liste liée se met à jour automatiquement.

    Bonne continuation
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/04/2016, 12h36
  2. Choix multiples liste déroulante
    Par Cindy m dans le forum IHM
    Réponses: 4
    Dernier message: 19/09/2007, 14h18
  3. Réponses: 2
    Dernier message: 05/12/2006, 22h05
  4. [VBA] choix valeur liste déroulante (champ texte d'1 table)
    Par Lou Pitchoun dans le forum Access
    Réponses: 14
    Dernier message: 22/02/2006, 10h27
  5. Réponses: 2
    Dernier message: 25/11/2005, 12h09

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