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 :

probléme filtre avec deux critéres?


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut probléme filtre avec deux critéres?
    salut
    je suis entrain de créer un filtre pour l'affichage de données, dans le fiche il y'a deux dblookupcombo et un dbgrid et biensûre adoconnection, adotables, datasources.
    bon, les critéres de filtrage doivent faire comme suit:

    si je selectionne une 'ville' dans dblookup1 et on ne selectionne rien dans dblookup2: le filtarge doit être selon le dblookup1 (il m'affiche tous les enregistrement ou il y'a la ville choisie)

    si je selectionne une 'qualification' dans dblookup2 et on ne selectionne rien dans dblookup1: le filtarge doit être selon le dblookup2 (il m'affiche tous les enregistrement ou il y'a la qualification choisie)

    si je selectionne une ville dans dblookup1 et si je selectionne une 'qualification' dans dblookup2: le filtarge doit être selon le dblookup1 et dblookup2 (il m'affiche tous les enregistrement ou il y'a la ville et la qualification choisie) c'est à dire un filtrage en deux critéres

    bon j'ai réaliser les deux 1eres conditions mais pour la derniere rien ne passe

    voici le code ou j'ai essayé de faire un filtre sur deux critéres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    filtered:=false;
    Filter:= 'qualification ='+ QuotedStr(dblookupcombobox2.Text) ;
    Filter:= filter+'and site_travail = '+ QuotedStr(dblookupcombobox1.Text);
    filtered:=true;
    même j'ai essayé d'utiliser les condition ou je teste sur l'action sur les dblookup, aussi rien ne passe pour la troisieme condition seulement les deux
    1éres qui fonctionnent et voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    filtered:=false;
    if (dblookupcombobox2.text='') and (dblookupcombobox1.text<>'')then
     Filter:= 'site_travail ='+ QuotedStr(dblookupcombobox1.Text) ;
     
    if (dblookupcombobox1.text='') and (dblookupcombobox2.text<>'')then
     Filter:= 'qualification ='+ QuotedStr(dblookupcombobox2.Text) ;
     
    if  (dblookupcombobox2.text<>'' )and (dblookupcombobox1.text<>'') then
    Filter:= 'qualification ='+ QuotedStr(dblookupcombobox2.Text) ;
    Filter:= filter+'and site_travail = '+ QuotedStr(dblookupcombobox1.Text);
     
    filtered:=true;
    j'attends vos aide avec grand remeriements

  2. #2
    Membre habitué Avatar de host22
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Mars 2007
    Messages : 222
    Points : 183
    Points
    183
    Par défaut
    utilise Onfilterrecord Aide de delphi peut t'aider...

  3. #3
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Salut!

    Je dis peut-être n'importe quoi mais...

    Citation Envoyé par dj_techno
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    filtered:=false;
    Filter:= 'qualification ='+ QuotedStr(dblookupcombobox2.Text) ;
    Filter:= filter+'and site_travail = '+ QuotedStr(dblookupcombobox1.Text);
    filtered:=true;
    ... il ne manquerait pas un espace entre les 2 critères ?

    Perso, j'essayerais avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Filtered := False;
    Filter := Format('qualification = %s and site_travail = %s', 
      [QuotedStr(dblookupcombobox2.Text), QuotedStr(dblookupcombobox2.Text)])
    Filtered := True;

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    salut
    j'ai bien essayé se code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Filtered := False;
    Filter := Format('qualification = %s and site_travail = %s', 
      [QuotedStr(dblookupcombobox2.Text), QuotedStr(dblookupcombobox2.Text)])
    Filtered := True;
    mais il ne me donne rien

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    salut

    je vais expliquer théoriquement se que je veux faire:

    mon probléme c'est que je veux que les deux dblookup fonctionnent l'un ne dépend pas de l'autre, c'est à dire que

    si je selectionne un site sans selectionner une qualification, il doit me faire un filtrage selon site

    si je selectionne une qualification sans selectionner un site, il doit me faire un filtrage selon qualification

    si je selectionne un site et je selectionne une qualification, il doit me faire un filtrage selon site et qualification

    aussi je dois toujours rénitialiser avec un bouton "rénistialiser" les deux dblookup à vide (n'affichent rien et je dois selectionner à nouveau), que je n'arrive pas à la faire.

    merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 37
    Points : 35
    Points
    35
    Par défaut
    Salut,
    essayez le code suivant pour les deux crirtères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    filtered:=false;
    Filter:= 'qualification ='+ QuotedStr(dblookupcombobox2.Text)+'and site_travail = '+ QuotedStr(dblookupcombobox1.Text);
    filtered:=true;

  7. #7
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut


    pour faire un filtre multi il faut pas utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Filtre := .........;
    Filtre := .........;
    mais il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filtre := '........' + ' AND .........'+' AND ........';
    des AND ou des OR ou AND et OR Ou........................ comme vous voulez....

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    bonjour
    j'attends toujours vos aides, car je suis coincé et pour le code j'utilise déja AND (mon code en haut de la discussion) et syntaxiquement est correcte et pas d'erreur, mais je crois que le probléme est au niveau de AND elle ne repond aux deux 1eres conditions :

    condition1:
    si je selectionne un site sans selectionner une qualification, il doit me faire un filtrage selon site

    condition2:
    si je selectionne une qualification sans selectionner un site, il doit me faire un filtrage selon qualification

    condition3:
    si je selectionne un site et je selectionne une qualification, il doit me faire un filtrage selon site et qualification

    merci

  9. #9
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Tu peux faire comme cela.

    Code Delphi : 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
     
    var
      sSite,sQualif : String;
    begin
      filtered:=false;
     
      Filter := '';
      sSite := '';
      sQualif := '';
     
      if dblookupcombobox1.text<>'' then
        sSite := 'site_travail ='+ QuotedStr(dblookupcombobox1.Text);
     
      if (dblookupcombobox2.text<>'') then
      begin
        if sSite <> '' then
          sQualif := ' and ';
       sQualif := sQualif + 'qualification ='+ QuotedStr(dblookupcombobox2.Text) ;
      end;
      Filter := sSite + sQualif; 
      filtered:=true;
    end;

  10. #10
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2005
    Messages : 479
    Points : 89
    Points
    89
    Par défaut
    salut
    grand merci MALTAR, votre solution fonctionne bien et tout marche comme je souhaite.
    merci

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

Discussions similaires

  1. [XL-2010] Problème NB.SI avec deux critères
    Par chpierro62 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/02/2015, 14h31
  2. Filtre sur deux critères Hfiltre
    Par reamgm dans le forum WinDev
    Réponses: 10
    Dernier message: 28/05/2013, 01h46
  3. Rechdom avec deux critéres
    Par isabelle b dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/05/2008, 16h00
  4. Rechdom dans un formulaire avec deux critères
    Par isabelle b dans le forum IHM
    Réponses: 11
    Dernier message: 13/05/2008, 00h28

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