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

Windows Forms Discussion :

Combobox relié par ID


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut Combobox relié par ID
    Bonjour,

    Je fais une petite interface en VB pour une bdd access, je suis sous Visual Basic Express 2008.

    Je fais du C++ mais c'est ma premiere appli en Basic.

    J'ai un petit soucis pour relier deux comboBox, dans mon expemple :

    une table Marque et une table Modele avec pour chaque champ, un ID_Marque qui le relie a la table précédente.

    Le but c'est quant je séléctionne une marque, la liste de modele se met a jour.

    J'ai utilisé une 3ieme combo caché pour stoqué l'ID de la Marque.
    Dans xxx_SelectedIndexChanged je dois récupérer l'ID dans la combo caché et mettre a jour la combo des Modeles.

    Ca fait 2 jours que je suis bloqué la dessus donc si vous avez des exemples, ou une autre méthode, je prend

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Même pas besoin d'écrire une seule ligne de code
    Ce post explique en détails comment faire (en supposant que tu utilises un DataSet)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Merci! Ca fonctionne niquel et c tres rapide a faire

    Est ce que je peux modifier ou ajouter des données en bdd avec les bindingsource ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par kzimir Voir le message
    Est ce que je peux modifier ou ajouter des données en bdd avec les bindingsource ?
    Oui, mais un ComboBox c'est pas vraiment fait pour ça... donc de toutes façons tu devras passer par du code pour le faire

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    C pas marrant si ya pas de code ^^

    Merci en tout cas, je tag comme resolu

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    J'ai vu pour les changements en base avec l'Adapter.

    Par contre je vois pas bien comment je vais intégrer tout ca avec la totalité de la base.

    Est ce que je dois créer un BindingSource pour chaque table ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par kzimir Voir le message
    Est ce que je dois créer un BindingSource pour chaque table ?
    Le BindingSource ne sert que pour les liaisons entre les données et l'interface graphique. Pour tout le reste (ce qui n'est pas affiché), c'est inutile

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Bah en fait tout est affiché, c'est pour un sondage, les téléopérateur doivent pouvoir tout saisir sur une page. C pas énorme ca représente 10 tables pour une 30ene de champs

    Les comboBox c'est pour des champs a 'arbre'

    Le contenu des combobox est modifiable dans une partie admin

    Donc voila en fait c plus pour de la saisie que pour de la consultation

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Donc j'ai utilisé les BindingSources pour mes ComboBox liées par contre j'ai pas réussi a récupérer les iD donc j'ai conservé ma technique de ConboBox caché qui stoque l'iD.
    Si je lui met la même dataSource et datamember que la dernière Combo de mon arbre elle se met a jour automatiquement. Reste plus qu'a lire son contenu lors du receuil des données

    Pour le reste j'utilise l'objet Adapter sur un dataSet (Ma base de donnée Access) et je fais mes requêtes moi même.

    J'ai une dernière question : Est ce qu'on peut appliquer un ORDER BY quand on utilise les BindingSource ?

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par kzimir Voir le message
    par contre j'ai pas réussi a récupérer les iD donc j'ai conservé ma technique de ConboBox caché qui stoque l'iD.
    Si je lui met la même dataSource et datamember que la dernière Combo de mon arbre elle se met a jour automatiquement. Reste plus qu'a lire son contenu lors du receuil des données
    C'est pas très propre comme technique
    Il suffit de définir le champ ID comme ValueMember du ComboBox, et d'accéder à la propriété SelectedValue pour obtenir l'ID sélectionné.

    Citation Envoyé par kzimir Voir le message
    J'ai une dernière question : Est ce qu'on peut appliquer un ORDER BY quand on utilise les BindingSource ?
    la propriété Sort sert à ça

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Ok pour l'iD

    Par contre la propriété Sorted ne fonctionne pas avec mon dataSource !
    Voila le message d'erreur :

    ComboBox that has a DataSource set cannot be sorted. Sort the data using the underlying data model.
    je comprend pas trop ce qu'il me dit de faire ^^

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    arf... la source de ta BindingSource n'est pas une DataTable ?

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    C quoi une dataTable ?
    J'utilise une base Access

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par kzimir Voir le message
    C quoi une dataTable ?
    C'est une table dans un DataSet. Tu as dis plus haut que tu en utilisais un...

    Qu'est-ce que tu as mis comme DataSource de la BindingSource ?

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Alors le BindingSource de la ComboBox niveau 1 :
    * dataSource : Ma base Access en dataSet

    Pour combo niveau 2 :
    * dataSource : Le BindingSource de la combo niveau 1

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par kzimir Voir le message
    Par contre la propriété Sorted ne fonctionne pas avec mon dataSource !
    Voila le message d'erreur :

    ComboBox that has a DataSource set cannot be sorted. Sort the data using the underlying data model.
    je comprend pas trop ce qu'il me dit de faire ^^
    OK, j'avais pas bien lu en fait...

    Ce n'est pas ça que je t'ai dit de faire... il ne faut pas utiliser la propriété Sorted du ComboBox, mais la propriété Sort du BindingSource. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bindingSourceMarque.Sort = "Nom";

Discussions similaires

  1. Combobox reliée à un bouton
    Par Fabthebug dans le forum Tkinter
    Réponses: 2
    Dernier message: 25/11/2007, 18h22
  2. List de combobox trié par enabled puis alphabétique
    Par stephane.julien dans le forum C#
    Réponses: 2
    Dernier message: 08/10/2007, 11h43
  3. Réponses: 1
    Dernier message: 20/09/2007, 00h28
  4. [VB.NET] combobox reliée à une DB
    Par olbi dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/05/2006, 10h04
  5. Relié par un vecteur 2 éléments dragndrop
    Par avogadro dans le forum Langage
    Réponses: 21
    Dernier message: 03/05/2006, 02h20

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