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

Macros et VBA Excel Discussion :

Remplir une combobox avec un table Access [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut Remplir une combobox avec un table Access
    Bonjour,

    J'ai cherché ma réponse dans de nombreuses FAQ et tuto mais n'est rien trouvé d'assez proche de ce que je souhaite faire.

    Je souhaite remplir une combobox avec le resultat d'une requête passée sur une base de donnée Access. J'ai parfaitement réussis à remplir une combobox avec le code trouvé dans les ressources (Source dvp) mais ce code remplis la première combo trouvé.

    J'aimerais si quelqu'un a, un moyen simple de définir une combobox précise, dans mon cas je l'ai appelé "cboCustomers".

    Voila ca que j'ai comme code actuelement:
    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
     
    Sub buUpdateCbo_Click()
        Dim Database As DAO.Database
        Dim RecSet As DAO.Recordset
     
        Set Database = DAO.OpenDatabase(ThisWorkbook.Path & "\Database.mdb", False, False)
        Set RecSet = Database.OpenRecordset("SELECT cu_Name FROM tbl_Customers", DAO.dbOpenSnapshot)
     
        'Ici le code de remplissage
     
        RecSet.Close
        Database.Close
        Set RecSet = Nothing
        Set Database = Nothing
    End Sub
    J'ai tout essayé mais je n'arrive qu'à des erreur "Object required", "Type missmatch" ...

    Merci d'avance,

    Alvaten

  2. #2
    Membre averti Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 455
    Points : 323
    Points
    323
    Par défaut
    J'ai tout essayé mais je n'arrive qu'à des erreur "Object required", "Type missmatch" ...
    Je ne suis pas d'accord.

    La question que t'as posé est récurrente sur le forum, et la réponse aussi.

    Ton problème est simple :

    Tu veux remplir une combobox avec le résultat d'une requête qui est stocké dans un recordset.

    réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom_dela_combo . AddItem Ce_que_tu_veu_mettre
    Nom_dela_combo ---> cboCustomers

    Ce_que_tu_veu_mettre ---> c'est le resultat de la requête i.e les enregistrements du recordset.

    Il te suffit donc de boucler sur ton recordset que t'as nommé "RecSet" et alimenter ta combo par des AddItem

    Exemple :


    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
    'Si des enregistrements correspondent à la requête alors
    If RecSet.RecordCount > 0 Then
        'se placer sur le premier enregistrement
        RecSet.MoveFirst
        'Tant que ce n'est pas la fin des enregistrements
        Do While RecSet.EOF = False
            'ajouter dans la combo l'enregistrement en cours
            cboCustomers.AddItem RecSet!cu_Name 
            'passer à l'enregistrement suivant
           RecSet.MoveNext
            'refaire
       Loop
    'sinon
    Else
        'mettre dans la zone de texte un message qui signale qu'il n'y a pas
        'd 'enregistrements
       cboCustomers.Text = "pas encore de rubriques enregistrées"
    'fin si
    End If
    Voilà à toi de jouer

  3. #3
    Membre éprouvé Avatar de Alvaten
    Homme Profil pro
    Développeur Java / Grails
    Inscrit en
    Novembre 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java / Grails
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 324
    Points : 1 023
    Points
    1 023
    Par défaut
    Merci de ton aide.

    En fait j'avais déja testé un code similaire. Je me suis rendu compte que ma combobox était un "Form Controls" et que c'était la source de mes messages d'erreurs.

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

Discussions similaires

  1. Remplir une ComboBox avec une plage de cellule
    Par zazaraignée dans le forum Contribuez
    Réponses: 2
    Dernier message: 02/03/2012, 18h07
  2. [VBA-E] Comment remplir une comboBox avec une macro
    Par Tchupacabra dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/04/2007, 11h16
  3. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31
  4. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  5. Réponses: 2
    Dernier message: 26/07/2004, 13h34

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