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]zone de liste


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [VBA-A]zone de liste
    Bonjour à tous,
    une petite question concernant les zones de liste des formulaires de VBA.
    Je souhaiterais remplir la liste de mon formulaire à partir d'élément que je récupère dans une base de données; j'utilise la propriété RowSource de la liste pour insérer un à un mes éléments. Mais si jamais mes éléments sont trop nombreux j'obtiens un message d'erreur : "Erreur d'execution 2176: Le paramètre de cette propriété est trop long". Après vérification il s'est avéré que RowSource était limité à 2048 caractères. Est ce que je me trompe? Existe-t-il une autre technique pour que je puisse insérer tous mes éléments dans la liste?

    Merci d'avance

    Gniark

  2. #2
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Hello,

    J'ignore si ça va changer quelque chose mais tu peux affecter un tableau à une listbox
    ListBox.list = Letableau

    Mais faut remplir le 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
    17
    18
    19
    20
    21
    22
     
    Sub UserForm_Initialize()
    Dim MyArray(5, 5), MyArray2(5, 5)
        For i = 0 To 5
            MyArray(i, 0) = i
        Next i
        'Chargez les colonnes 2 et 3 de MyArray
        MyArray(2, 0) = "Zéro"
        MyArray(2, 1) = "Un"
        MyArray(2, 2) = "Deux"
        MyArray(2, 3) = "Trois"
        MyArray(2, 4) = "Quatre"
        MyArray(2, 5) = "Cinq"
        MyArray2(1, 0) = "0"
        MyArray2(1, 1) = "1"
        MyArray2(1, 2) = "2"
        MyArray2(1, 3) = "3"
        MyArray2(1, 4) = "4"
        MyArray2(1, 5) = "5"
        'Charge les données dans les contrôles Liste2
        Liste2.List = MyArray
        ComboBox1.List() = MyArray
    Bon week-end

  3. #3
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par gniark
    j'utilise la propriété RowSource de la liste pour insérer un à un mes éléments.
    Tu peux nous montrer le code qui fait ça?
    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!

  4. #4
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Tu
    pour insérer un à un mes éléments
    Citation Envoyé par AlainTech
    Tu peux nous montrer le code qui fait ça?
    +1

    Tu ne confondrais pas avec additem ?

    A+

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Voici le code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Me.MaListe.RowSource=""
    For l_iI = 0 To l_iNbMaxValeurs
        Me.MaListe.RowSource = Me.ListeArticlesSBO.RowSource _
                               & l_iMaReference(l_iI) & ";" _
                               & l_sMaDescription(l_iI) & ";"
    Next
    Avec l_iMaReference un tableau d'entiers et l_sMaDescription un tableau de chaines de caractères. Dans mon formulaire la liste contient deux colonnes.

    Pour rappel je travaille en vba et non en vb donc la propriété addItem n'existe pas pour les listes.

    Merci d'avance

  6. #6
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par gniark
    Pour rappel je travaille en vba et non en vb donc la propriété addItem n'existe pas pour les listes.
    Tiens, c'est nouveau, ça???
    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!

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je travaille sous VBA 2000 et pour les zones de liste je n'ai pas accès à la méthode addItem.

  8. #8
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Je ne connais pas VBA 2000...

    Par contre ce qui serait nettement plus intéressant, c'est que tu nous dises dans quelle Application tu travailles.

    VBA Excel 2000, ça je connais!
    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!

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    En fait je parlais de Access 2000..

  10. #10
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Autant pour moi. Recherche "RowSource" tu as 24 questions sur le sujet, l'une d'elle t'apportera sans doute la solution...
    Je crois savoir que rowsource s'applique pour une plage de cellules (donc Excel) et que sur access, tu dois utilier un tableau
    LeTableau = array("donnée1";"donner";"donné";"etc...")
    Listbox.list = LeTableau
    ou
    ListBox.list = array("donnée1";"donner";"donné";"etc...")
    Tu peux essayer ça pour nous ?

    A+

  11. #11
    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 : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par gniark
    En fait je parlais de Access 2000..
    Si tu as encore d'autres questions après celle-ci, pense à mettre le tag [VBA-A] dans ton titre comme je l'ai fait pour toi.

    Ca évite de tourner autour du pot pendant plusieurs messages...
    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!

  12. #12
    Invité
    Invité(e)
    Par défaut
    Salut

    Additem n'éxiste car partir d'Access 2002, l'autre solution serait de passer par une table ou tu mets des données et dans RowuSource une requête SQL, tu ne seras pas litmité par le nombre de caractères et en mettant "table/requête" à la propriété origine source

    Starec

Discussions similaires

  1. [VBA-Access] Zone de liste : problème de séléction
    Par ushiwa.sasuke dans le forum VBA Access
    Réponses: 10
    Dernier message: 04/07/2007, 13h57
  2. [VBA-E] zone de liste avec Validation
    Par lucarno dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2007, 13h23
  3. Réponses: 13
    Dernier message: 27/06/2006, 11h20
  4. [VBA-A] Changer largeur colonne zone de liste
    Par hacksi dans le forum VBA Access
    Réponses: 5
    Dernier message: 02/06/2006, 10h20
  5. [VBA-A]Pb av les zones de listes "vides"
    Par eultartuffe dans le forum VBA Access
    Réponses: 2
    Dernier message: 31/05/2006, 11h12

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