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 :

[VBA-A]Remplissage ListBox


Sujet :

VBA Access

  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut [VBA-A]Remplissage ListBox
    Bonjour,

    je travaille actuellement sous Access et je dois réaliser des formulaires que je dois remplir avec des donnée de table. J'ai donc repris un ancien code que j'avais réaliser sous Outlook dans le même but (j'utilisais la méthode AddItem). Or, il s'avère que cette méthode ne marche pas sous Access: j'ai donc tenté d'utiliser RowSource.. sans succès, et je ne comprends vraiment pas pourquoi. Voici mon code de remplissage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        With rstLogi
            If (.State = adStateOpen) And (Not (.EOF And .BOF)) Then
            .MoveFirst
                Do Until .EOF
                    strChaine = .Fields("designation")
                    Form_LIST_LOGI.List_Logi.RowSource = strChaine
                    .MoveNext
                Loop
            Else
                MsgBox "Pas d'objet"
                End
            End If
        End With
    Sachant que strChaine est de type String et qu'il contient une requête SQL (qui est correct), quelqu'un saurait t'il me dire pourquoi cela ne marche pas ? Ai je omis quelque chose ?

    Merci

    Cuicui

  2. #2
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Personne ne sait ?

    Si vous voulez que j'ajoute plus d'élément (comme ma requête ainsi que son execution par exemple, ou encore l'appelle de la sous routine) n'hésitez pas à me le faire savoir

    Merci

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    La méthode Additme n'éxiste qu'à partir d'Access 2002

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim strChaine as String
    strChaine = ""
    while not rstLogi.EOF
         strChaine = rstLogi("designation") & ";" & strChaine
         rstLogi.MoveNext
    wend
    me.maliste.rowsource = strChaine
    Et mettre liteValeurs dans les propriétés de ta liste.


    Ce code est tapè à la main, pas dans l'éditeur VB, mais le principe est là


    Starec

  4. #4
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Toujours le même problème.. La liste box ne se remplit pas.

    En outre, j'ai tenter de faire cela pour voir si elle se replissait mais sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_LIST_LOGI.List_Logi.RowSource = ("cuicui";"kilvan";"oiseau")
    Il doit me manquer un élément, mais je ne voit vraiment pas quoi..

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    Il me semble qu'il ne faut pas de parenthèse, as-tu controler listeValeurs dans les propriétés

    Starec

  6. #6
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Re

    Si je ne met pas de parenthese, il me dit "Erreur : Fin d'instruction"

    Par contre, je t'avoue que je suis un peu perdu (pourquoi on ne peut pas utiliser AddItem snif..) Que veux tu dire par controler ListeValeur dans propriété ? J'imagine que c'est dans les propriétés de la listbox mais je dois vérifier quoi ?

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    J'ai bien une idée mais j'ignore si elle va fonctionner aver access (il y a un forum Access)
    Au lieu de tenter de renseigner la listbox dans la boucle, crée un tableau dans la boucle - avec redim preserve Tableau(NoLigne) - puis, remplis ta listbox du tableau

    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
    Dim strChaine()
       With rstLogi 
            If (.State = adStateOpen) And (Not (.EOF And .BOF)) Then 
            .MoveFirst 
                Do Until .EOF 
                    i = i + 1
                    Redim preserve strChaine(i)
                    strChaine(i) = .Fields("designation") 
                    .MoveNext 
                Loop 
            Else 
                MsgBox "Pas d'objet" 
                End 
            End If 
        End With
    Form_LIST_LOGI.List_Logi.List()= strChaine()
    Comme je ne peux pas vérifier, je me suis inspiré de ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Tableau()
        Do While i < 15
            i = i + 1
            ReDim Preserve Tableau(i)
            Tableau(i) = Worksheets("Feuil1").Cells(i, 2).Formula
        Loop
    UserForm1.MaListeBox.List() = Tableau()
    qui fonctionne en VBA-E

    A toutes fins utiles ... et à tout hasard, donc !

  8. #8
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Ok, merci bien

    Je vais vérifier tout de suite. par contre, je laisse strChaine en type string ou je le met en tableau ? Si je dois le déclarer en temps que tableau, je met quoi comme nom de variable en VBA ?
    (le code que tu t'es inspiré est du VBScript me semble t'il ? )

    Encore merci pour votre aide

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Non, c'est du VBA97 !!!
    Quant à ta strChaine, comme j'ai essayé ça vite fait, c'est un variant mais fais l'essai avec string.
    Bref, tu peux essayer ça pour moi ? Tu nous donneras le résultat de ton expérience...

    Merci pour tout

    A+

  10. #10
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Lol je viens d'essayer rapidement sans trop tenter de changer quoi que ce soit. Il attend effectivement un tableau :s. Je vais retenter d'autre manip.. Je comprends vraiment pas pourquoi ma listbox ne se remplit pas :S. Au fait, c'est moi qui te remercie lol

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je viens de voir une erreur possible :

    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            End If 
        End With 
    Form_LIST_LOGI.List_Logi.List()= strChaine()
    Mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            End If 
            Form_LIST_LOGI.List_Logi.List()= strChaine() 
        End With
    Tu dis

    A+

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par cuicui08
    Toujours le même problème.. La liste box ne se remplit pas.

    En outre, j'ai tenter de faire cela pour voir si elle se replissait mais sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_LIST_LOGI.List_Logi.RowSource = ("cuicui";"kilvan";"oiseau")
    Il doit me manquer un élément, mais je ne voit vraiment pas quoi..
    As-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_LIST_LOGI.List_Logi.RowSource = Array("cuicui";"kilvan";"oiseau")
    :

    Edit --> Ou, comme le suggère ouskel'n'or:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_LIST_LOGI.List_Logi.List() = Array("cuicui";"kilvan";"oiseau")
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  13. #13
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Bonjour,

    désolé de ne pas avoir donnée de signe de vie avant mais je n'ai pas pu me connecter à Internet ce week end. Je viens de tester vos différentes manières, sans succès.. (si je laisse les point virgules, il génère une erreur et la ligne devient rouger et si je remplace par des virgules, il me dis :"Imconpatibilité du type") Je ne comprend vraiment pas ..

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pourquoi ne passes-tu pas par un tableau ?
    (En VBA, le séparateur est une virgule, en VB je ne sais pas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Tableau = array("","cuicui","kilvan","oiseau","nid","branche", "arbre","derrière chez moi", "un petit bois")
    Form_LIST_LOGI.List_Logi.RowSource = Tableau
    Ça, je suis bien certain que ça marche. Attention, ton tableau commence à 0 et la chaîne vide est là pour ça

    Tu dis

  15. #15
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Je vais essayer voir si ca marche, mais en fait le vrai but de mon projet est de joindre des requêtes SQL à la listbox, c'est pourquoi je n'ai pas osé utiliser de tableau, de peur que ça ne marche pas (je me suis peut etre tromper, non ?). Bon, je vais tester ce que tu m'as donné et je vous redis quoi. Encore merci

  16. #16
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Je viens de faire un copier/coller, pour bvoir si la listbox se rempliçait enfin Il me dis qu'une bibliothèque n'est pas ouverte. Je dois ouvrir quoi dans l'explorateur d'objet pour utiliser les tableaux ?

  17. #17
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En VBA Excel j'aurais écrit
    Form_LIST_LOGI.List_Logi.List= Tableau
    et non RowSource qui pour moi voudrait dire que j'attends une plage de données dans une feuille de calcul... :

    A+

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Dans Outils -> Références si tu vois marqué MANQUANT, c'est que la référence est ... manquante.
    Mais pour VBA Access, je vais te laisser avec ceux qui connaissent...

    A+

  19. #19
    Membre averti
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Par défaut
    Ok, encore un grand merci. Je vais donc faire comme tu viens de me dire (j'y arriverais à afficher ces éléments dans la listbox.. j'y arriverais )

Discussions similaires

  1. [VBA-E] Remplissage d'une listebox
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/04/2006, 17h53
  2. [VBA-E] eviter blanc remplissage listbox avec tableau
    Par chmod777 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/04/2006, 12h16
  3. Remplissage ListBox
    Par beb30 dans le forum MFC
    Réponses: 4
    Dernier message: 29/03/2006, 10h11
  4. [VBA] Envoyer un listBox en paramètre à une fonction
    Par kissmytoe dans le forum Access
    Réponses: 8
    Dernier message: 13/03/2006, 20h28
  5. [C#] remplissage listBox avec un dataSet
    Par aymron dans le forum ASP.NET
    Réponses: 5
    Dernier message: 18/10/2005, 10h44

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