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 de recherche avec filtre


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 126
    Points : 77
    Points
    77
    Par défaut problème de recherche avec filtre
    salut tout le monde
    je veux effectue une recherche dans une table normalement voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data.tpieces.Filtered:=false;
     f:='';
     if  Edit1.Text<>'' then
     f:='(Ref_piece='''+ edit1.Text+'*'')';
     data.tpieces.Filter:=f;
     data.tpieces.Filtered:=(f<>'');
    mais il me dit '12*' n'est pas une valeur entier correct en sachant que 12 c'est l'indexe que je veux le cherche
    j'ai modifie le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data.tpieces.Filtered:=false;
     f:='';
     if  Edit1.Text<>'' then
     f:='(Ref_piece='''+ edit1.Text+''')';//j'ai supprime l'étoile 
     data.tpieces.Filter:=f;
     data.tpieces.Filtered:=(f<>'');
    quand jai supprime l'étoile ca marche bien mais le problem c'est que elle affiche juste une seul valeur
    par example si je veux affiche tout les indexe qui commence par 1 alors la ca sera impossible alors es que vous avez une idée
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 669
    Points : 5 238
    Points
    5 238
    Par défaut
    Replace le "=" par un "like" et le "*" par un "%"

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 126
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par popo Voir le message
    Replace le "=" par un "like" et le "*" par un "%"
    ca marche pas
    voila ce que j"ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data.tpieces.Filtered:=false;
     f:='';
     if  Edit1.Text<>'' then
     f:='(Ref_piece like'''+ edit1.Text+'%'')';
     data.tpieces.Filter:=f;
     data.tpieces.Filtered:=(f<>'');
    Merci Comme meme et j'ai un autre problem comme faire pour cherche des noms
    par example NOM et nom sont pas kif kif alors es que il y une possible de les rendre les meme en terme de recherche bien sure si je tappe par example nom
    elle affiche tout les nom Majuscule et Miniscule

  4. #4
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    Salut.lenetfm.

    Essaye ce code,il marche très bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data.tpieces.Filtered:=false;
     f:='';
     if  Edit1.Text<>'' then
     f:='Ref_piece= '''+(Edit1.Text)+'*''';(ton problème réside dans : '*'')'  . il faut avoir 4 apostrophes pour que le filtre marche.
     data.tpieces.Filter:=f;
     data.tpieces.Filtered:=(f<>'');

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 126
    Points : 77
    Points
    77
    Par défaut
    merci nabil pour la reponse mais ca marche pas
    la meme erreur

  6. #6
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    voici le code que j'utilise moi même (il marche très bien sans aucun problème) pour faire une recherche et filtre en même temps:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
    data.tpieces.Filtered:=false;
    data.tpieces.Filter:='Ref_piece = '''+(Edit1.Text)+'*''';
    data.tpieces.Filtered:=true;

  7. #7
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 126
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par NABIL74 Voir le message
    voici le code que j'utilise moi même (il marche très bien sans aucun problème) pour faire une recherche et filtre en même temps:

    procedure TForm1.Edit1Change(Sender: TObject);
    begin
    data.tpieces.Filtered:=false;
    data.tpieces.Filter:='Ref_piece = '''+(Edit1.Text)+'*''';
    data.tpieces.Filtered:=true;
    ca marche pas chez moi
    juste une Question le type de ref_piece tu las met alphanémurique ?? si c'est le cas ca marche le mien et auto incremente alors ca marche pas désoler

  8. #8
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 158
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par lenetfm Voir le message
    ca marche pas chez moi
    juste une Question le type de ref_piece tu las met alphanémurique ?? si c'est le cas ca marche le mien et auto incremente alors ca marche pas désoler
    Pourquoi pas faire strtoint(edit1.text)

  9. #9
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 126
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par gentilman_delphi Voir le message
    Pourquoi pas faire strtoint(edit1.text)
    je ne peut pas le faire parce que on dois avec un string pour que le filtre marche :d

  10. #10
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par lenetfm Voir le message
    je ne peut pas le faire parce que on dois avec un string pour que le filtre marche :d
    QuodeStr(strtoint(edit1.text))

  11. #11
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 126
    Points : 77
    Points
    77
    Par défaut
    ça marche pas

  12. #12
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    Petite question pour faire des tests : Ton Edit.text peut avoir n'importe quelle longeur, ou il a toujours un nombre maximum de caractères ?
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  13. #13
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut
    @lenetfm :

    Pourquoi ne pas remplacer ton TTable par un TQuery et
    lancer une petite requête paramétrée..
    ce qui te simplifierait grandement l'écriture du filtre :

    Code : 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
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with Qpiece.SQL do
      begin
        Qpiece.close;
        Clear;
     
        Add('SELECT Nom  ');
        Add('FROM PIECE ');
        Add('WHERE UPPER(Nom ) LIKE :SAISIE ');
     
        Qpiece.ParamByName('SAISIE').Value := '%' + Uppercase(Edit1.Text) + '%';
        Qpiece.Open;
      end;
    end;
    en traitant le tout en majuscule, tu règles ton souci de recherche sur "nom"

    ce qui t'empêche pas éventuellement d'ajouter un autre paramètre dans la requête 'AND quelque chose=:num' te permettant de filtrer le numéro de l'index de ta pièce.

    Cantador

  14. #14
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 126
    Points : 77
    Points
    77
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. Problème de recherche avec critère venant d'une combobox
    Par chyanon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/03/2010, 22h26
  2. [WD12] Recherche avec filtre
    Par Gaetch dans le forum WinDev
    Réponses: 2
    Dernier message: 27/04/2009, 08h51
  3. (debutant) Un petit problème du recherche avec xpath
    Par Zikas-r dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/12/2007, 02h28
  4. problème de recherche avec les collections
    Par gibea00 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/08/2007, 23h23
  5. Problème de recherche avec ASP & sqlserver
    Par salmer dans le forum ASP
    Réponses: 2
    Dernier message: 13/04/2006, 10h00

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