Lier deux Combobox VB

Bonjour,

Je suis nouveau sur le forum et j'ai besoin de code vb6 pour lier deux combox dont le second depend du premier

Merci de me répondre.

4 réponses

  1. je travail sous vb6, et jè 2 combos ds le 1er, jè la liste des communes. je veu ke lorsqu'on choisit une commune, la liste des quartiers de la 2e combo soit fonction de la commune choisie

    j'ai deja reussit à me connecter à la bd pour charger la liste des commune dans la 1re combo. j'ai besoin du code pour faire le filtre de la seconde como
    0
    1. Contributeur
      Bonjour,
      si tu a Excel, voir cet exemple
      A+
      L'expérience instruit plus sûrement que le conseil. (André Gide)
      Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
      0
      1. bonjour, j'ai essayé ton code mais ça fonctionne pas voici mon code

        Private Sub cb_com_Change()
        On Error Resume Next

        REQ = "SELECT * from quartier" _
        & "WHERE Cde_com='" & Left(Me.cb_com, 3) & "'"

        Adodc1.ConnectionString = "Microsoft.Jet.OLEDB.4.0;Data Source=C:\FFPSU\FFPSU.mdb;Persist Security Info=False"
        'Liste des quartiers
        Adodc1.RecordSource = REQ
        Adodc1.Refresh

        With Me.Adodc1.Recordset
        .MoveFirst
        Do While .EOF = False
        If .EOF = False Then
        Me.cb_quart.AddItem .Fields("nom_quart")
        End If
        .MoveNext
        Loop
        End With
        End Sub
        0
      2. Bonjour,

        Peut être comme ça. N'oublie pas de cocher la référence à la bibliothèque Microsoft Activex Data Object 2.7 Library

        Private Sub cb_com_Change()
        Dim AdoCnx As ADODB.Connection
        Dim Rs As ADODB.Recordset
        Dim query As String
        
        Set AdoCnx = New ADODB.Connection
        
        With AdoCnx
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .Open "C:\FFPSU\FFPSU.mdb"
        End With
        
        query = "SELECT * from quartier" _
        & "WHERE Cde_com='" & Left(Me.cb_com, 3) & "'"
        
        Set Rs = New ADODB.Recordset
        
        With Rs
              .ActiveConnection = MaConnexion
              .Open query, , adOpenDynamic, adLockPessimistic
        End With
        
        Rs.MoveFirst
        While Not (Rs.EOF)
         Me.cb_quart.AddItem .Fields("nom_quart")
        Rs.Move.Next
        Wend
        
        AdoCnx.Close
        Rs.Close
        Set AdoCnx = Nothing
        Set Rs = Nothing
        
        End Sub
        
        0
      3. meric pour le code mais quand je cocher la référence à la bibliothèque Microsoft Activex Data Object 2.7 Library tout le projet ne fonction pas il fonctionne avec le 2.0

        je m'explique je me connecte deja à la db avec le premier combo dont voilà le code utilisé

        Private Sub Form_Load()
        Set cnn = New Connection

        cnn.Provider = "Microsoft.jet.OLEDB.4.0"
        cnn.Open App.Path & "\FFPSU.mdb"
        ' Définition de la source
        SQL = "SELECT nom_com FROM commune"

        ' Ouverture de la source
        Set recTmp = New Recordset
        recTmp.Open SQL, cnn
        ' Lecture de la source jusqu'à la fin
        Do While Not recTmp.EOF
        cb_com.AddItem recTmp!nom_com
        recTmp.MoveNext
        Loop

        recTmp.Close
        Set recTmp = Nothing
        End Sub
        et ça marche en chargeant la liste des commune
        maintenant, je veux que le second combo soit fonction du premier c-à-d ke lorsqu'on choisit une commune, le second combo sort la liste des quartiers de ctte commune.
        le code de la seconde combo est le suivant que vous venez de corriger mais il ressemble un peu o code de chargement de la premiere combo

        excusez moi pour le desagrement mais, j'ai besoin de votre aide car vous vous y connaissez en la matière merci pour tous les efforts à mon égard
        0
      4. Ca doit fonctionner aussi avec Microsoft Activex Data Object 2.0 Library ...

        Je ne vois pas la difficulté. Pour la 2ème combo, il n'y a que la requête qui change par rapport au remplissage de la 1ère combo.

        Donc en reprenant ce que tu as fait (et qui fonctionne) :

        Private Sub cb_com_Change()
        On Error Resume Next
        
        Set cnn = New Connection
        
        cnn.Provider = "Microsoft.jet.OLEDB.4.0"
        cnn.Open App.Path & "\FFPSU.mdb"
        ' Définition de la source
        SQL = "SELECT nom_quart FROM quartier" _
        & "WHERE Cde_com='" & Left(Me.cb_com, 3) & "'"
        
        
        ' Ouverture de la source
        Set recTmp = New Recordset
        recTmp.Open SQL, cnn
        recTemp.MoveFirst
        ' Lecture de la source jusqu'à la fin
        Do While Not recTmp.EOF
        cb_com.AddItem recTmpFields(0)
        recTmp.MoveNext
        Loop
        
        recTmp.Close
        Set recTmp = Nothing 
        End Sub
        0
      5. merci infiniment je pense que le code doit pouvoir marcher certainement j'ai du faire une petite erreur kelk part ke je vè chercher qd ya trop de code on finit par s'embrouiller mon frère
        mais si tu veux bien m'aider, je t'envoie mon projet en pièce jointe donc si tu peux me donner ton mail
        0
    2. ok merci d'avance
      0
      1. En fait, ça voulait dire:

        "Peux tu donner plus de précisions stp?
        D'ou viennent les informations à mettre dans les combobox?"
        0
      2. je travail sous vb6, et jè 2 combos ds le 1er, jè la liste des communes. je veu ke lorsqu'on choisit une commune, la liste des quartiers de la 2e combo soit fonction de la commune choisie

        j'ai deja reussit à me connecter à la bd pour charger la liste des commune dans la 1re combo. j'ai besoin du code pour faire le filtre de la seconde combo
        merci de me repondre
        0
      3. Il faut une requête "SELECT" avec une clause "WHERE"

        Le tout passé par un recordset qui va permettre en le parcourant de remplir la combo.
        0
      4. où placer la req ?
        0
    3. Bonjour,

      J'interroge ma boule cristal pour savoir d'où viennent les données à mettre dans les combos et je reviens te donner une réponse !!!

      Ôo
      1
      1. Elle te sert beaucoup en ce moment ta boule de cristal. ^^
        0
      2. J'chui bien obligé de faire appel à elle, j'ai pas pris l'option "don divinatoire" dans mon cursus universitaire ... ^^
        0