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 double filtrage


Sujet :

Bases de données Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 121
    Points : 59
    Points
    59
    Par défaut Problème de double filtrage
    Bonjour !
    J'essaye de filtrer des données entre deux dates , mais je n'y arrive pas. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      DM.tbCde.Filtered:=True;
      DM.tbCde.Filter:='DATEPERS = 'DateInitiale' and DATEPERS = 'DateFinale' ';
     DM.tbCde.Filtered:=True;
    DATEPERS est le nom du champ de la table qui contient les dates.
    DateInitiale et DateFinale sont les noms de mes deux objets DateTimerPicker qui me permettent de choisir entre deux dates.
    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var
      sFilter: string;
    begin
      sFilter := 'DATEPERS BETWEEN #' + 
        FormatDateTime('mm/dd/yyyy', DateInitiale.Date) + '# AND #' +
        FormatDateTime('mm/dd/yyyy', DateFinale.Date) + '#';
     
      with DM.tbCde do
      begin
        Filter :=sFilter;
        if not Filtered then Filtered := True;
      end;
    end;
    @+ Claudius

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 121
    Points : 59
    Points
    59
    Par défaut
    Merci pour le code , je vais essayer de l'integrer dans mon programme .ça ne va pas être facile; c'est vrai c'est aussi long comme code, je m'attendais à quelque chose comme deux lignes.
    Encore merci.

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Si tu tiens absolument à 2 lignes alors voilà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DM.tbCde.Filter := 'DATEPERS BETWEEN #' + FormatDateTime('mm/dd/yyyy', DateInitiale.Date) + '# AND #' + FormatDateTime('mm/dd/yyyy', DateFinale.Date) + '#';
    DM.tbCde.Filtered := True;
    @+

  5. #5
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    depuis que j'utilise les requette je me souvient pas trops mais normalement les filtres son cumulable, je m'explique
    lorsque on applique un filtre a une table déja filtrer sans le désactivé l'ancien, le nouveau filtres est appliquer aux données déja filter ?

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Citation Envoyé par aityahia
    lorsque on applique un filtre a une table déja filtrer sans le désactivé l'ancien le nouveau filtres et appliquer aux données déja filter ?
    Euh non, la condition du filtre sera toujours celle exprimée par la condition Filter. Donc pas de cumul de filtres.

    @+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 121
    Points : 59
    Points
    59
    Par défaut
    Merci pour le code en deux lignes,je l'ai essayé , et il me donne un erreur au moment du filtrage;
    Merci pour votre aide.

  8. #8
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    a mon avis le BETWEEN n'est pas supporté en plus vous n'avez pas a reformaté la date. testé OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DM.tbCde.Filter:='DATEPERS >= #' +DateInitiale.AsString + '# AND DATEPERS <= #' +DateFinale.AsString+ '#'

  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 aityahia
    a mon avis le BETWEEN n'est pas supporté en plus vous n'avez pas a reformaté la date. testé OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DM.tbCde.Filter:='DATEPERS >= #' +DateInitiale.AsString + '# AND DATEPERS <= #' +DateFinale.AsString+ '#'
    Salut
    Vous pouvez utiliser le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filter:='Dat >= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker1.Date) + '# AND Dat <= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker2.Date)+ '#';
    ca marche avec moi tres bien.....

  10. #10
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Citation Envoyé par aliwassem
    Salut
    Vous pouvez utiliser le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filter:='Dat >= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker1.Date) + '# AND Dat <= #' +FormatDateTime('mm/dd/yyyy', DateTimePicker2.Date)+ '#';
    ca marche avec moi tres bien.....
    je suis désolé peut êtres que sa fonctionne mais vous aurai un résultat faut ça ne marche pas comme sa pour les filtres c'est pas comme les requetes. il ne faut pas formater la date il faut juste utiliser le format du system.

  11. #11
    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
    Citation Envoyé par aityahia
    je suis désolé peut êtres que sa fonctionne mais vous aurai un résultat faut ça ne marche pas comme sa pour les filtres c'est pas comme les requetes. il ne faut pas formater la date il faut juste utiliser le format du system.
    Bien sur que si qu'il est necessaire de formater la date pour que ca fonctionne, essaie avec mySQL tu verra qu'il n'accepte que le format YYYY-MM-DD pour les dates
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  12. #12
    Membre habitué

    Inscrit en
    Août 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 253
    Points : 197
    Points
    197
    Par défaut
    Il faudrait décoder le date en utilisant la commande decodedate() sous Delphi ainsi que la re-formater suivant les besoins car le filtre dépend du pilote de la Base de donné considéré.

  13. #13
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    j'ai essayé avec Access et sa ne marche pas si je formate les dates meme si avec access quand je fait des requete je doit formater les dates au format (mm/dd/yyyy)
    avec MySQL j'ai pas essayer ?

    alors j'ai déduis que les filtres sont exécuter au niveau de mon objets TABLE et les requetes au niveau du serveur de base de données , alors je me suis tromper.

  14. #14
    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
    Salut
    Alors mo je travaiile avec access et toujour je format les dates quand je fais insertion des datas ou quand je Selection ou une requet c'est toujours je doit le Formater....

    il ne faut pas formater la date il faut juste utiliser le format du system.
    alors quand vous inserez les donnees n'utilisez pas le format du systeme , il faut de refoamter comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FieldByName('Dat').Value := FormatDateTime('MM/DD/YYYY',DateTimePicker1.Date);

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 121
    Points : 59
    Points
    59
    Par défaut
    merci pour vos reponses et suggestions;

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

Discussions similaires

  1. [Math]problème multiplication double
    Par xso dans le forum Général Java
    Réponses: 29
    Dernier message: 04/12/2010, 15h04
  2. [HQL]Problème avec double join fetch
    Par zev dans le forum Hibernate
    Réponses: 1
    Dernier message: 05/12/2006, 09h59
  3. [Tableaux] probleme de double affichage
    Par clovis200 dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2006, 16h54
  4. Probleme de double rolover en CSS avec des images
    Par gandoulfe dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 12/04/2006, 16h24
  5. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51

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