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 :

Une variable recevant les valeurs d'une liste déroulante


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut Une variable recevant les valeurs d'une liste déroulante
    Bonjour, dans la version 2007 d'Access nous avons la possibilité de créer des contrôles Zone de Liste déroulante à choix multiple. Tout comme il est possible de créer une variable String et de lui associer la valeur d'une Textbox.value, est-il possible de créer une variable contenant l'ensemble des valeurs d'une zone de liste déroulante ? Merci

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    j'adore ces questions ...

    "Est-ce qu'on peut..... ?"

    A part répondre : "as-tu essayé et qu'as-tu essayé? ", j'ai une réponse toute faite : oui

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    salut !

    Et bien j'ai essayé d'associer ma valeur comme je fais pour des variables classiques, du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim text as string
    text = me.chkbox.value
    Sauf que lorsqu'il s'agit d'une liste déroulante multi-valuée, j'ai une incompatibilité de type. J'ai essayé en déclarant ma variable sous d'autres formes (Long, Byte, Variant ...), mais pour l'instant je n'ai pas trouvé comment faire !

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    tu seras obligé de boucler sur SelectedItems.
    Après ta variable, ca peut être un tableau ou une collection.

    C'est normal que tu ne puisse faire directement

    Variable = Valeur, puisqu'il y a plusieurs valeurs

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Oui j'étais parti un peu dans cette direction, je déclare ma variable en tant que tableau, mais lorsque je fais un test pour voir ce que me retourne mon code, mon MsgBox ne me donne rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim txtINI_3(6) As String ' variable qui va recevoir les multi-valeurs
    Dim nT As Variant
        For Each nT In Me.Fonction.ItemsSelected
            MsgBox Me.Fonction.Selected(nT)
        Next nT

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    et en remplacent Seleccted par ItemData ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    J'avais essayé, mais ça me met Argument non facultatif.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each nT In Me.Fonction.ItemData
        MsgBox Me.Fonction.ItemData(nT)
    Next nT
    J'ai essayé en rajoutant (nT), en l'enlevant pour le msgbox, etc ... mais idem !

  8. #8
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim i As Long
        Dim t() As String
        ReDim t(Me.Fonction.ItemsSelected.count - 1)
        For i = LBound(t) To UBound(t)
            t(i) = Me.Fonction.ItemData(Me.Fonction.ItemsSelected(i))
        Next
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Dim v As Variant
        Dim c As Collection
        set c = new collection
        For Each v In Me.Fonction.ItemsSelected
            c.add Me.Fonction.ItemData(v )
        Next

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    Salut ! Merci pour ton aide, je ne connaissais pas la gestion des collections, j'ai potassé la chose. Par contre, j'ai voulu vérifier le nombre d' ItemData que cette fonction me sélectionnait pour mon enregistrement, et j'obtiens toujours le résultat nR = 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function initialisationTexte()
    Dim nC As Collection
    Dim nV As Variant
    Dim nR As Integer
     
        nR = 0
     
        Set nC = New Collection
        For Each nV In Me.Fonction.ItemsSelected
            nC.Add Me.Fonction.ItemData(nV)
            nR = nR + 1
        Next
        MsgBox nR
    End Function
    Sachant que ma zone de liste déroulante Fonction contient 6 valeurs et que 2 par défaut sont cochées, je me suis dis comment se fait-il que mon compteur repère m'indique 0 ? J'ai testé un MsgBox nC.Count à la fin et j'ai également 0 ! C'est bizarre non ?

Discussions similaires

  1. Récupération de la valeur d une variable elle même contenue dans une variable
    Par guiplongeur dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/03/2015, 16h23
  2. Réponses: 2
    Dernier message: 24/10/2008, 08h04
  3. Recuperer les valeurs d'une variable
    Par yoann_deygas dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/06/2007, 11h10
  4. Réponses: 9
    Dernier message: 30/05/2006, 10h33
  5. Réponses: 5
    Dernier message: 16/05/2006, 09h23

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