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 :

SVP aidez moi à résoudre ce prob de Filtrage


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut SVP aidez moi à résoudre ce prob de Filtrage
    Salut ,
    SVP .. SVP aidez moi a résoudre ce problème qui me revient souvent le voici :
    je voudrais filtrer une table par raport à deux champs (filter la table par rapport au premier champs puis filtrer les résultats mais cette fois ci c'est par rapport au deuxième champs ) j'ai éssayé l'opérateur AND mais ça marche pas

    un exemple pour mieux comprendre :

    j'ai une table avec les champs: Client,Somme,Année,Mois
    je voudrais au premier lieu filtrer la table par rapport à une année choisi dans un combobox , puis filtrer les résultat par rapport à un mois choisi aussi dans un combobox.

    Merci beacoup de me répondre

  2. #2
    Membre actif
    Inscrit en
    Décembre 2004
    Messages
    390
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 390
    Points : 288
    Points
    288
    Par défaut
    Il est préférable de nous écrire le code que tu as pour pouvoir t'aider .

    Peut être que t'as pas mis les parenthèses.
    Ton filtre doit être comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    '(ANNEE=''' + cmbAnnee.Text + ''') AND ' +
    '(MOIS=''' + IntToStr(cmbMois.ItemIndex + 1) + ''')'
    En supposant que ton champs Mois est sous la forme MM et Integer

    Sinon tu fais le premier filtre dans la propriéte Filter et le deuxième dans l'evt OnFilterRecord (voir l'aide de Delphi)

    Et n'oublies pas de mettre la propriété Filtered à True !

  3. #3
    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


    Voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Table Do
    Begin
            Filtered :=  false;
            Filter :='MGet > 0 AND '+ 'Nom = '+ QuotedStr(DBLookupComboBox10.Text)+ 'AND Dat >= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker9.Date) + '# AND Dat <= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker10.Date)+ '#' ;
            Filtered := True;
    end;

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 932
    Points
    40 932
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par aliwassem
    :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Table Do
    Begin
            Filtered :=  false;
            Filter :='MGet > 0 AND '+ 'Nom = '+ QuotedStr(DBLookupComboBox10.Text)+ 'AND Dat >= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker9.Date) + '# AND Dat <= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker10.Date)+ '#' ;
            Filtered := True;
    end;

    Manque un espace , '+ QuotedStr(DBLookupComboBox10.Text)+ ' AND
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    il existe l'opérateur BETWEEN pour les valeurs comprises entre 2 paramètres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Table Do
    Begin
            Filtered :=  false;
            Filter :='(MGet > 0) AND (Nom = '+ QuotedStr(DBLookupComboBox10.Text)+ ') AND (Dat BETWEEN #' +FormatDateTime('mm/dd/yyyy', DateTimePicker9.Date) + '# AND #' +FormatDateTime('mm/dd/yyyy', DateTimePicker10.Date)+ '#)';
            Filtered := True;
    end;

  6. #6
    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
    Citation Envoyé par SergioMaster
    Manque un espace , '+ QuotedStr(DBLookupComboBox10.Text)+ ' AND


    Mais ca marche avec moi tres bien

  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
    Citation Envoyé par evarisnea

    il existe l'opérateur BETWEEN pour les valeurs comprises entre 2 paramètres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Table Do
    Begin
            Filtered :=  false;
            Filter :='(MGet > 0) AND (Nom = '+ QuotedStr(DBLookupComboBox10.Text)+ ') AND (Dat BETWEEN #' +FormatDateTime('mm/dd/yyyy', DateTimePicker9.Date) + '# AND #' +FormatDateTime('mm/dd/yyyy', DateTimePicker10.Date)+ '#)';
            Filtered := True;
    end;



    Oui ici j'ai trois filtres MGet,Nom,Dat.....


  8. #8
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    Citation Envoyé par aliwassem


    Oui ici j'ai trois filtres MGet,Nom,Dat.....

    oui j'ai bien vu, et ils sont toujours là. ça ne marche pas ?

  9. #9
    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
    Citation Envoyé par evarisnea
    ça ne marche pas ?


    Non , ça marche bien.

Discussions similaires

  1. svp aidez moi :FreeImagePlus
    Par dev0077 dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 20/09/2007, 04h21
  2. SDL : SVP aidez moi !!!
    Par adidmamah dans le forum OpenGL
    Réponses: 5
    Dernier message: 11/06/2004, 09h49

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