Lier deux Combobox VB

ktchogo Messages postés 10 Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
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. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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. MrSlave Messages postés 2657 Statut Membre 147
       
      Elle te sert beaucoup en ce moment ta boule de cristal. ^^
      0
    2. Polux31 Messages postés 7219 Statut Membre 1 204
       
      J'chui bien obligé de faire appel à elle, j'ai pas pris l'option "don divinatoire" dans mon cursus universitaire ... ^^
      0
  2. ktchogo Messages postés 10 Statut Membre
     
    ok merci d'avance
    0
    1. Gaunts Messages postés 1390 Statut Membre 116
       
      En fait, ça voulait dire:

      "Peux tu donner plus de précisions stp?
      D'ou viennent les informations à mettre dans les combobox?"
      0
    2. ktchogo Messages postés 10 Statut Membre
       
      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. Polux31 Messages postés 7219 Statut Membre 1 204
       
      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. ktchogo Messages postés 10 Statut Membre
       
      où placer la req ?
      0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. ktchogo
       
      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. Polux31 Messages postés 7219 Statut Membre 1 204
       
      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. ktchogo Messages postés 10 Statut Membre
       
      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. Polux31 Messages postés 7219 Statut Membre 1 204
       
      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. ktchogo Messages postés 10 Statut Membre
       
      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
  4. ktchogo Messages postés 10 Statut Membre
     
    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