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 :

Remplir une listbox par vba/access2000


Sujet :

IHM

  1. #1
    Membre régulier Avatar de zibi7
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut Remplir une listbox par vba/access2000
    Bonjour,
    après qq heures de recherches, je vais exposer mon problème peut etre qu'on pourra m'aider..
    j'ai une table contact avec un seul attribut nomcontact
    je veux faire une page de formulaire avec une listbox qui contient tout les nomcontact existant.
    Il faut savoir que c'est une manip facile a faire avec access 2000, pour ceux qui veulent uniquement afficher des champs la méthode est de faire un click droit sur la listbox en mode création et dans les propriétés mettre comme contenu une requete (pré-engistré, un select du champ voulu).
    Dans mon cas, je suis obligé (je suis pas certaine) par le vba pour les manipulations que je veux faire après (récupérer l'élément selectioné et le supprimer...) avec la version 2000 je galère, je pensais que ça allait être évident avec LstBox.AddItem Mais non !!!! il veut rien savoir
    Pouvez-vous m'aidez, voila le code qui me récupère les élément du tableau
    reste à les mettre dans la listbox
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Sub test()
     
    Dim LB As ListBox
    Dim dbc As DAO.Database
    Dim rs As DAO.Recordset
    Dim Destinataires As String
    Dim nbrs As Long
    Dim intCounter As Long
     
    'initialisation de la base, l'enregistrement recorset est de type table
     
    Set dbc = CurrentDb()
    Set rs = dbc.OpenRecordset("CONTACT")
     
    'positionne le pointeur à la fin des enregistrement
     
    rs.MoveLast
     
    'stocke la valeur de nombre de lignes dans la variable nbrs
     
    nbrs = rs.RecordCount
     
    'maintenant qu'on a la longueur on peut fixer le tableau de copie de données
     
    'ReDim Destinataires(nbrs - 1)
     
    'se repositionne au début des enregistrements
     
    rs.MoveFirst
     
    ' parcours tout les recordset et on les affecte (nomagent) à notre tableau
     
    For intCounter = 0 To nbrs - 1
    Destinataires = rs.Fields("Nomcontact")
     
    ---- j'ai testé il récupére bien les nomcontact, c'est la que je dois mettre LB.additems=destinataires???? l'équivalent pour 2000 en tout cas
    MsgBox (Destinataires)
    -----
     
    rs.MoveNext
    Next intCounter
     
     
     
    End Sub
    Merci d'avance!!!
    “La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.” Albert Einstein

  2. #2
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Pas besoin d'ajouter tes objets un par un. Vu que tes enregistrements sont dans une BDD, il te sufit de mettre une requète (ex. SELECT * FROM CONTACT; ) dans la propriété contenu de ta zone de liste
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


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

    Plusieurs choses

    La méthode AddItem n'est apparue qu'à partir d'Access 2002.

    Pour remplir ta listbox tu as deux méthodes
    1. La méthode que t'indique azertix qui est la plus simple.
    2. Créer une chaine ou chaque élément de la liste sera séparé par un ; mais il faut que dans ta zone de liste tu es la propriété Origine Source à Liste valeurs.


    Starec
    Dernière modification par Invité ; 24/05/2008 à 21h37.

  4. #4
    Membre régulier Avatar de zibi7
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut Merci tout d'abord
    alors concernant l'idée de remplir la listbox avec la requete select , je pensais avoir été explicite (je sais comment faire en l'ajoutant à la source par l'interface graphique) j'ai besoin de le faire en vba pour l'intégrer à une macro et reutiliser les données. si je trouve une méthode comme additem se serait parfait!!!!
    “La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.” Albert Einstein

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

    J'ai fait une petite erreur dans le message précédent que je viens de rectifier, additem n'est apparu qu'à partir d'Access 2002, excuse moi.

    Donc tu as les deux solutions dans mon post précédent, si tu ne veux pas de SQL, il y a la chaîne de texte, et chaque élément est séparé par un ;.

    Starec

  6. #6
    Membre régulier Avatar de zibi7
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 72
    Points : 75
    Points
    75
    Par défaut ok
    je suis désolée je ne vois pas ce que tu veux dire par transformer le contenu en liste de chaines
    “La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.” Albert Einstein

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

    Ce n'est pas transformer le contenu en chaine, c'est alimenté le contenu en chaine.

    Tu trouveras dans cet exemple de la Comment ajouter un ou des éléments à une zone de liste ?, une liste alimenté par une chaine.

    Starec

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/01/2009, 12h00
  2. remplir une table par VBA
    Par gwen_oc dans le forum Access
    Réponses: 3
    Dernier message: 22/02/2007, 15h04
  3. [VBA-E] Remplir une listbox à l'ouverture d'un formulaire
    Par fred bx dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/06/2006, 13h25
  4. [VBA-E] Séparer les colonnes d'une listbox par des lignes?
    Par mulot03 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2006, 14h03
  5. Réponses: 2
    Dernier message: 11/05/2006, 22h21

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