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

Bases de données Delphi Discussion :

Utilisation DBListBox ListBox


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 60
    Points
    60
    Par défaut Utilisation DBListBox ListBox
    Bonjour.
    Je connais le principe d'utilisation des DBLookUpListBox mais pas des DBListBox ou ListBox.
    Vous n'auriez pas un lien ou deux d'une doc ou d'un exemple.
    Merci.

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    D'après ce que j'ai vu,
    il faut relier la DBListBox a un Data Source qui
    lui même est relié a un Querry.
    Or même après avoir vérifié que mes composants soient connectés et actifs, je n'ai rien dans ma ListBox

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;

    regarde si ton query est actif et si ton DBListBox est positionné sur un champ de ton DataSet.

    Bonne chance.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour

    Un TListBox donne un résultat pris dans une liste que l'on doit remplir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MyListBox.Items.Clear;
    MyListBox.Items.Add('A');
    MyListBox.Items.Add('B');
    MyListBox.Items.Add('C');
    La propriété style indique la manière dont la liste box vas autoriser la saisie des valeurs (uniquement les valeurs de la liste/ n'importe quelle valeur etc.)

    Un TDBListBox est identique dans le fonctionnement mais vas mettre les information directement dans un champs d'une table ou d'une requête.

    La différence entre un TDBListBox et un TDBLookUpListBox est que la Liste des valeurs (propriété items) est remplacé par une valeur prise dans une table ou une requête. Cette liste est donc constitué automatiquement.

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    Whhwow!
    Ok !
    Merci des réponses.
    J'essaye tout ça.

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    Euu!
    J'ai relu pendant quelques minutes ton explication mais j'ai beaucoup de mal à comprendre ton 2eme et 3eme point.
    De plus j'ai essayé le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MyListBox.Items.Clear;
    MyListBox.Items.Add('A');
    MyListBox.Items.Add('B');
    Mais je ne comprend pas non plus à quoi il peut servir.
    Je vois bien qu'il s'affiche dans ma ListBox mais a quoi ça sert...

  7. #7
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Ce n'est rien qu'une liste ! alors imaginons que tu as une donnée dont la valeur est "A" ou "B" ou "C" et que tu ne veux pas que ton utilisateur entre un caractère autre que ceux que tu as envisagé voilà une bonne méthode pour l'empêcher. Maintenant la même liste peut-être dans une fichier ou Base de données alors autant aller la chercher et l'exploiter sans pour autant la saisir ou donner la main à l'utilisateur, d'où l'utilisation d'un composant orienté donnée DBListBox. Compliquons encore les choses, alors imaginons que notre liste peut-être dynamique, à mon sens vaut mieux manipuler une table l'enregistrer et la rattacher à notre composant que travailler directement avec un composant ordinaire. N'est ce pas utile tout ça.
    j'espère avoir apporté quelques éclaircissements.

    Bonne chance.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    OK !
    Merci !
    D'où l'utilité de la DBListBox lorsque l'on veut afficher les données d'une table.

    Mais alors j'en reviens à ma 1ere question.
    Pourquoi est ce que lorsque j'ai relié ma ListBox a un data set et lui même a un querry ,et également renseigné le champ datafield, il ne se passe rien.

  9. #9
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Re;

    le temps que je mette un petit exemple et te donner suite
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  10. #10
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Très juste ta remarque, j'ai fais la même chose que toi mais la liste reste vide. Pour contourner le problème j'ai dû faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Table1.Open;
      while not(Table1.Eof) do
      begin
        DBListBox1.Items.Add(Table1.FieldByName('FirstName').AsString);
        Table1.Next;
      end;
    end;
    mais je me demande quel est l'utilité de Items en présence d'un DataField qui est censé récupéré les données sans aucune ligne de code !

    affaire à suivre, peut-être que nos experts Delphi auront le temps pour nous donner des explications.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Je reprend l'explication


    Voila un shema des liens avec un TDBListe box

    DataSource a modifier --lien-- DataSet des valeurs a modifier --lien--TDBListBox --lien-- Liste

    Le dataset et le datasource corresponde a la valeur à modifier et la liste au valeur possibles.
    Par défaut la liste des valeurs possible est vide.
    Cela explique la remarque de Just-Soft disant qu'il à du remplire la liste avec des valeurs issue d'une table.

    Un DBLookUpListBox n'a pas de liste mais un autre dataset

    DataSource a modifier --lien-- DataSet des valeurs a modifier --lien--TDBListBox --lien-- Dataset des valeurs possibles --lien-- Datasource des valeurs possibles.

    Pour en revenir aux problème de base.
    Si vous mettez un simple TDBEdit relier au champ à modifier, pouvez vous modifier le champ ?

  12. #12
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    oui mais tel que le DBListBox est conçu on n'est pas à l'abri d'un mélange de données. je m'explique, si le DataFiled est relié à un champ 'Nom' et l'items est rempli de données type date ! ça donnerait quoi ça ?

    A mon sens le Items devrait lui même correspondre au type de données du DataField pour qu'il n'y est pas de problème d'uniformité de données. mais comme Items n'est autre qu'un TString alors bonjour les dégâts !
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Les items sont toujours du type string. Ce n'est pas négociable, sauf à être patron d'Embarcadero.

    Si vous voulez un type variable, vous pouvez par contre dérivé un TBListBox pour créer une alternative a TDBListbox. A moins que d'autre ne l'ai déja réalisé et qu'un composant soit disponible sur internet.

    Du coup, il faut dans chaque items mettre une valeur compatible en string avec la valeur à saisir.

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    Je n'arrive pas tout à fait à vous suivre dans vos dernière explications mais en tout cas, j'arrive a me servir correctement de la DBListBox.

    Les 2 ou 3 exemples qu'il y a sur le site développez (Delphi/Source)
    http://delphi.developpez.com/sources...pp_com_listbox
    sont utiles aussi.
    merci pour vos réponses.

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

Discussions similaires

  1. Utiliser valeur listbox pour champ TCD
    Par Scrabblouille dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/08/2011, 21h44
  2. Réponses: 3
    Dernier message: 02/12/2010, 10h26
  3. utilisation des listbox
    Par clarisse dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/07/2007, 13h40

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