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

VB 6 et antérieur Discussion :

Remplir 2 combobox des données de deux tables


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Remplir 2 combobox des données de deux tables
    Bonjour,

    Je voudrais lier deux combobox. l'un à une table Agence(IdAgence) et l'autre à une table Secteur(IdSecteur, IdAgence) de façon à avoir
    1- sur le premier combobox Agence tous les agences de la tables
    2- sur le second combo, lorsqu'une agence est sélectionnée, les secteur de cette agence doivent être chargés.

    Merci d'avance

  2. #2
    Membre régulier Avatar de hi-wave
    Inscrit en
    Décembre 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 136
    Points : 114
    Points
    114
    Par défaut
    salut a vous.

    puisque c'est d'un combobox dont il s'agit, il vous faudra
    un recordset chargé grace a une requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select idagence from ......
    et une boucle du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while not recordsetset.EOF then
    combobox1.additem(recordset(0))
    end while
    pour remplir le premier combobox

    et pour le 2eme une requete du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select idsecteur from...... where idagence like '"& combobox1.text &"';"
    ensuite une boucle du même style que la haut
    et je pense que ça pourrait aller.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour la réponse mais ça ne marche pas. Et j'ai le message "Method or data member not found" et j'ai le AddItem sélectionné.
    Peut-être qu'il ne reconnaît pas la méthode AddItem.
    J'ai aussi essayé de mettre un datagrid et lui donner comme RecordSource les requêtes mais ça ne marche toujours pas.
    Où se situe le problème à votre avis?

  4. #4
    Membre régulier Avatar de hi-wave
    Inscrit en
    Décembre 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 136
    Points : 114
    Points
    114
    Par défaut
    en fait personnellement j'utilise plutot des datacombo pour ce genre de manip.
    ils sont plus simple a manipuler pour les donnees de BD.

    voici un exemple pour remplir un datacombo avec un des champs d'une table
    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
     
    dim strconn as string
    dim conn as adodb.connetion
    dim recset as adodb.reccordset
    dim chaine as string
     
    'les lignes pour ouvrir se onnecter a la BD
    strconn="chaine de connecction et tous le sparamètres de connexion"
    set conn =  createobject("adodb.connection")
    conn.open strconn
     
    'les lignes pour remplir le recordset
    chaine = "select ......... from.......;"
    set recset = ccreateobject("adodb.recordset")
    recset.open chaine,conn,3 ' c'est juste l'essentiel sinon d'autres details sont souvent necessaires
     
    'ensuite il faut dessiner sur la feuille un controle datacombo et
    set datacombo.datasource= recset
    set datacombo.rowsource = recset
    datacombo.listfield = recset("champ a faire apparaitre")
    datacombo.datafield = recset("champ a faire apparaitre")
     
    'par preaution vider le recordset
    set recset =  nothing
    et faire la même manip pour le deuxieme datacombo en accordant la requete

  5. #5
    Membre habitué Avatar de muzele
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 144
    Points : 142
    Points
    142
    Par défaut
    Jette un coup d'oeil sur ce topic:
    http://www.developpez.net/forums/d39...ction-critere/

    Tu trouvera surement la réponse à ton sujet!
    Voir la réponse de : bricoyeye

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    salut,
    En fait c bien un dataCombo que j'utilise aussi. Mais apparemment, il ne supporte pas les méthodes AddItem et Clear.
    J'ai aussi essayé d'utiliser les propriétés datasource e RowSource. J'ai un message d'erreur.
    Auriez-vous une idée sur ce qui cause problème?

  7. #7
    Membre régulier Avatar de hi-wave
    Inscrit en
    Décembre 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 136
    Points : 114
    Points
    114
    Par défaut
    pour les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dataombo.listfield = recset(x) 
    datacombo.datafield = recset(x)
    ajoute la propriété name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dataombo.listfield = recset(x).name
    datacombo.datafield = recset(x).name

Discussions similaires

  1. affichage des données de deux tables sur un état
    Par silue fignigue siaka dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/03/2009, 12h35
  2. copier des données entre deux table access (vb2005)
    Par solid_sneak06 dans le forum VB.NET
    Réponses: 9
    Dernier message: 12/07/2008, 13h20
  3. [MySQL] Fusion des données de deux tables, lors de la lecture
    Par ymoreau dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2007, 20h45
  4. Transferer a la volée des données entre deux tables
    Par schwinny dans le forum Access
    Réponses: 2
    Dernier message: 13/07/2006, 08h50
  5. pb de relation des données de deux tables
    Par Skizo dans le forum Access
    Réponses: 3
    Dernier message: 02/06/2006, 17h00

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