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 :

[VBA-E] Contenu d'une combo box = champ d'une table SQL


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut [VBA-E] Contenu d'une combo box = champ d'une table SQL
    Bonjour,

    Je travaille sous Excel (VBA) et je voudrais lister le contenu d'un champ d'une table de ma base de donne dans une ComboBox.
    Je voudrais que cette liste deroulante m'affiche tous les enregistrements relatif a un certain champ.

    En lisant la FAQ VB je suis tombe sur cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set DataCombo1.DataSource = rst
    Set DataCombo1.RowSource = rst
    DataCombo1.ListField = "MonChamp"     'nom du champ
    Le probleme c'est que je n'ai pas une grande experience en VB et je ne vois pas a quoi corresponde tous ces champ...

    DataCombo1: Est-ce le nom de ma combobox?je suppose que oui...
    Datasource: Je suppose la source de donnees que je vais utiliser pour me connecter a la base, mais comment la declarer et la definir en amont? Je suppose que je dois utiliser ADO. Je ne vois pas comment la combobox peut lister le contenu d'un champ specific d'une table en precisant seulement le DSN?

    Est-ce que quelqu'un pourrait m'expliquer comment je peux coder ca SVP?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonsoir,
    Dans le menu Outils / Références, tu dois cocher Microsoft ActiveX Data Objects 2.0 Library et Microsoft DAO 3.51 Object Library (suivant ta version d'office, se sera peut-être 2.5 et 3.6)
    Cet exemple utilise la base de donnée Biblio, qui se trouve dans VB6, il suffit que tu places le chemin de ta BD, le nom de la Table et le nom du champ
    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
     
    Private Sub CommandButton1_Click()
    Dim adoConnection As ADODB.Connection
    Dim adoRecordSet As ADODB.Recordset
    Set adoConnection = New ADODB.Connection
    Set adoRecordSet = New ADODB.Recordset
    Dim ConnectionString As String
                                          'chemin de la base de données
    ConnectionString = "Provider = Microsoft.Jet.OLEDB.3.51;" & " Data Source = C:\Program Files\Microsoft Visual Studio\vb98\Biblio.mdb"
    adoConnection.Open ConnectionString
                    'nom de la table
    adoRecordSet.Open "Publishers", adoConnection
    Do Until adoRecordSet.EOF
     
    ComboBox1.AddItem adoRecordSet!Name 'nom du champ
    adoRecordSet.MoveNext
    Loop
    adoRecordSet.Close
    adoConnection.Close
     
    Set adoConnection = Nothing
    Set adoRecordSet = Nothing
    End Sub
    jpleroisse

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Merci beacoup je viens juste de l'implementer et ca marche parfaitement.

    Par contre je souhaterais selectionner 2 voir plusieurs champs dans ma table.
    Je m'explique, l'utilisateur va avoir une liste deroulante de noms de projets, moi j'ai besoin de recuperer l'identifiant unique lie a ce nom de projet pour pouvoir executer des chose derriere...

    L'ideale ce serait d'avoir les 2 (nom de proj et ID respectifs) dans 2 variables differentes car derriere je dois modifier la ligne correspondante dans la base de donnees.

    Est-ce possible avec la methode ci-dessus?

Discussions similaires

  1. [AC-2010] Contrôle texte affichant une colonne N+1 d'une Combo-box
    Par mihego32 dans le forum IHM
    Réponses: 4
    Dernier message: 19/03/2017, 16h50
  2. Réponses: 3
    Dernier message: 21/09/2008, 10h42
  3. Réponses: 17
    Dernier message: 27/03/2007, 16h06
  4. [VBA-E] Soucis sur une Combo box
    Par bonilla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2006, 10h52
  5. [Access/VBA] Selection de champ d'une List Box
    Par elgringo2007 dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2006, 15h07

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