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

Langage Delphi Discussion :

Comparer contenu ListBox et DbGrid


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut Comparer contenu ListBox et DbGrid
    Bonjour,

    Je veux comparer le contenue d'un ListBox et d'un DbGrid. Une requête rempli une colonne dans un DbGrid. J'ai crée une liste dans ListBox.
    Je veux comparer les données affichées dans la DbGrid avec la ListBox. Si une ligne de la DbGrid est égale à une ligne de la ListBox, la ligne de la LisBox est supprimer, et ainsi de suite jusqu'à la fin de la DbGrid.
    Merci pour toutes contributions.

  2. #2
    Membre expérimenté
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Points : 1 307
    Points
    1 307
    Par défaut
    C'est pas très compliqué!

    Tu fais deux boucles imbriqués:
    - la première pour itérer sur tes enregistrements (une boucle while)
    - la seconde pour itérer sur ta listbox (une boucle for).

    Ensuite tu fais une simple comparaison, (un test if) et si les chaine sont égales, tu supprime la ligne correspondante de ta ListBox...

    Fait un essai, et poste ton code si jamais tu a un problème...

    Bon courage
    Ce que l'on apprend par l'effort reste toujours ancré plus longtemps...

  3. #3
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    J'ai apprise à faire des boucles avec des chiffres, mais jamais avec des DbGrid ou ListBox. Voici quelque chose, je sais que c'est pas fameux mais...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    While DbGrid1.SelectedRows.Count > 0 do
                     begin
                       For i = 1 to listBox1.SelCount > 0 do
                           begin
                             if DbGrid1.SelectedRows = ListBox1.Items then
                                LisTbox1.Items.Destroy;
                           end;
                     end;

  4. #4
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    Bonsoir,

    ton DBGrid se rempli à partir d'un Dataset, il te suffit donc de parcourir ton dataset, puis de boucler sur les lignes de ta listbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MonDataset.first;
    while not( MonDataset.eof) do
    begin
      for i := 0 to MaListBox.count - 1 do
      begin
        ..
      end;
     
      MonDataset.next;
    end;
    @++
    Dany

  5. #5
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Merci, mais ces lignes de mon code, pose problème. Pouvez-vous m'aider?.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if DbGrid1.SelectedRows = ListBox1.Items then
                                LisTbox1.Items.Destroy;
    Merci.

  6. #6
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    Bonsoir,

    je mettais plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if MonDatasetMonChamp.Value = MaListBox.Items[ i] then
      MaListBox.items.Delete( i);
    @++
    Dany

  7. #7
    Membre habitué Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Points : 162
    Points
    162
    Par défaut
    Bonjour,

    Je m'excuse pour le temps mis avant de répondre independemment de ma volonté. J'ai éssayé ton code et je rencontre un problème de : "impossible... ensemble de donnée fermé.".
    Je précise que ma DataSource n'est pas lié à une table mais à un Query. Je veux tous simplement après l'exécution de la requête, on puisse après vérification, faire des suppressions de ligne dans la DbGrid.
    Merci.

Discussions similaires

  1. Comparer contenu de 2 ListBox
    Par sondo dans le forum Langage
    Réponses: 12
    Dernier message: 18/02/2009, 09h46
  2. Exporter le contenu d'un DBGrid dans un Memo
    Par Poisson Rouge dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/08/2006, 14h07
  3. Imprimer le contenu d'un DBGrid
    Par kj_83 dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/07/2006, 17h12
  4. comment copier le contenu d'un dbgrid dans un richedit?
    Par altadeos dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/04/2006, 11h15
  5. [VBA-E]comparer contenu textbox et cellule
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 21/02/2006, 12h43

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