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

C++Builder Discussion :

[BDE] Afficher des données dans un TDBComboBox


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 89
    Points : 70
    Points
    70
    Par défaut [BDE] Afficher des données dans un TDBComboBox
    Bonjour,
    Je souhaiterai afficher toutes les données d'un champ d'une table dans un TDBComboBox. J'utilise PostgreSQL, un driver odbc, et TDataBase.
    Je déclare un TQuery sur la fiche contenant mon TDBComboBox... et là je suis un peu coincé pour ce qui est des commandes à faire. J'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("SELECT id_articles FROM articles_tbl");
    Query1->Open();
    Query1->First();
    while(!Query1->Eof)
    {
      Query1->SQL->Add(Query1->FieldByName("id_articles")->AsString);
      Query1->Next();
    }
    dans la méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void __fastcall TFormArticles::DBComboBox1Change(TObject *Sender)
    C'est vraisemblablement faux tout ça. Donc si quelqu'un pouvait m'apporter ses lumières, je lui serai très reconnaissant.
    Merci d'avance
    Cordialement

  2. #2
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Si je me rappelle bien, un TDBComboBox fonctionne un peu comme un TDBGrid. Tu exécutes une requète à l'aide d'un Query pour obtenir tes différentes données puis tu lies ton Query à ton DBComboBox pour y mettre les valeurs résultants de ton Query.

    Perso, je te recommenderai plus d'utiliser un TComboBox que tu remplis à l'aide d'une boucle avec les résultats de ta requète (je trouve ça plus souple).
    + + +

  3. #3
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    J'ai retrouvé la solution pour remplir un TDBComboBox.
    1 - un TQuery ouvert avec ta requète
    2 - un TDataSource lié à ton Query
    3 - le DataSource lié au TDBComboBox via la propriété DataSource
    4 - dans la propriété DataField de ton DBComboBox, tu précises le champs qui sert à indiquer les valeurs à mettre dans le DBComboBox.

    Fini!!!
    + + +

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 89
    Points : 70
    Points
    70
    Par défaut
    Merci beaucoup bakaneko pour tes réponses, aurais-tu par hasard un bout de code pour l'utilisation d'un TComboBox (une boucle sur toute une colonne d'une table), parce que là y a une couille dans le patté...
    Merci beaucoup d'avance encore une fois
    Cordialement

  5. #5
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Voici un code que j'utilise (donc qui marche) avec les TADOQuery.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Query->Close();
     Query->SQL->Clear();
     Query->SQL->Add("SELECT VOIE_NOM FROM VOIE ORDER BY 1");
     Query->Prepared = true;
     Query->Open();
     Application->ProcessMessages();
     for (int i = 0;i < Query->RecordCount;i++)
     {
      Voie_Nom->Items->Add(Query->FieldByName("VOIE_NOM")->Text);
      Query->Next();
     }
    Pour que ça marche avec les TQuery, je pense qu'il faut que tu remplaces le Query->FieldByName("VOIE_NOM")->Text par Query->FieldValues["VOIE_NOM"] mais je n'en suis pas sûr.
    + + +

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 89
    Points : 70
    Points
    70
    Par défaut
    Bonjour, en fait j'ai réussi à le faire marcher en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("SELECT id_articles FROM articles_tbl ORDER BY id_articles DESC LIMIT 10");
    //Query1->Prepare();
    Query1->Open();
    Query1->First();
    while(!Query1->Eof)
    {
      ComboBox1->Items->Add(Query1->FieldByName("id_articles")->AsInteger);
      Query1->Next();
    }
    Par contre, quand un utilisateur choisi une des valeurs dans la TComboBox, je voudrais la récupérer(la valeur) pour la réutiliser dans une autre requête. Est-ce qu'il y aurait une variable du type ComboBox->Value?
    Un grand merci d'avance
    Cordialement

  7. #7
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Tu peux faire:
    qui te donne l'élément écrit dans le combobox

    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox->Items->Strings[ComboBox->Itemindex]
    qui te donne l'élément présent dans la liste d'Items du ComboBox à l'endoit sélectionné.
    + + +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher des données dans un datagrid à partir d'une base de données MySQL
    Par General_Garrisson dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/07/2006, 15h14
  2. afficher des données dans un sous formulaire
    Par issam16 dans le forum Access
    Réponses: 3
    Dernier message: 26/06/2006, 15h36
  3. Afficher des données dans un popup
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 122
    Dernier message: 03/05/2006, 09h46
  4. [VB6] Afficher des données dans un datacombo
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/05/2006, 11h49
  5. [VBA-E] afficher des données dans des cellules
    Par Bad Bond dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/04/2006, 14h04

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