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

C++Builder Discussion :

Filtre entre 2 dates sur ADOTable [Débutant]


Sujet :

C++Builder

  1. #1
    Membre du Club
    Homme Profil pro
    Electromécanicien
    Inscrit en
    Octobre 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electromécanicien

    Informations forums :
    Inscription : Octobre 2009
    Messages : 76
    Points : 41
    Points
    41
    Par défaut Filtre entre 2 dates sur ADOTable
    Bonsoir,
    est il possible de filtré entre 2 dates, j'arrive à filtré avec une date mais je ne vois pas comment faire avec 2 dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     AnsiString dd = FormatDateTime("DD/MM/YY",D1->Date);
            AnsiString resDAT = "DA_DEV='";
            resDAT +=dd;
            AnsiString aa = "'";
            ADOTable3->Filter = resDAT+aa;
            ADOTable3->Filtered = true;
    pour les dates je me sert du composant "DateTimePicker"
    merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 722
    Points : 25 620
    Points
    25 620
    Par défaut
    l'opérateur AND fonctionne dans la plupart des Filtre, tu auras plus de détail dans TCustomADODataSet.Filter

    Etudie l'utilisation d'un TADOQuery, plus économique, tu pourras récupérer juste le nécessaire au lieu de tout lire puis d'y appliquer un filtre, pour ACCESS (en loca) cela n'a pas d'importance mais un SGBD SQL en réseau, le gain est notable surtout à grand volume


  3. #3
    Membre du Club
    Homme Profil pro
    Electromécanicien
    Inscrit en
    Octobre 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electromécanicien

    Informations forums :
    Inscription : Octobre 2009
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    ok pour l’opérateur AND mais quand je dit "filtré entre 2 dates"
    c'est pour avoir un filtre du 10 janvier 2013 au 15 janvier 2013 et non le 10 janvier 2013 et le 15 janvier 2013 désolé de mettre mal exprimé

    par contre pour " TADOQuery " je n’aie jamais utilisé les requettes SQL , sa va être chaud ! , je vais regarder

    merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 722
    Points : 25 620
    Points
    25 620
    Par défaut
    Un peu d'imagination !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ADOTable3->Filter = String().Format(
      "'%s' <= DA_DEV AND DA_DEV<= '%s'",
      ARRAYOFCONST((
        FormatDateTime("DD/MM/YY",D1->Date), 
        FormatDateTime("DD/MM/YY",D2->Date)
      ))
    );

  5. #5
    Membre du Club
    Homme Profil pro
    Electromécanicien
    Inscrit en
    Octobre 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electromécanicien

    Informations forums :
    Inscription : Octobre 2009
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    la je suis au bureaux, j’essaye des que je rentre à la maison

    merci

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 722
    Points : 25 620
    Points
    25 620
    Par défaut
    Citation Envoyé par microbe83 Voir le message
    la je suis au bureaux, j’essaye des que je rentre à la maison

    Tout l'inverse de ce que je fais !
    Quand je suis à la maison, je ne touche à aucun ordi,
    mieux, j'en ai plus, le dernier a rendu l'ame, je ne l'ai pas remplacé,
    et je suis payé pour programmer, chez moi, je ne le suis plus

  7. #7
    Membre du Club
    Homme Profil pro
    Electromécanicien
    Inscrit en
    Octobre 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Electromécanicien

    Informations forums :
    Inscription : Octobre 2009
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    re-bonjour,
    ça marche mais en inversant 2 paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            ADOTable3->Filter = String().Format( "DA_DEV>='%s' AND DA_DEV<='%s'",
            ARRAYOFCONST((
            FormatDateTime("DD/MM/YY",D1->Date),
            FormatDateTime("DD/MM/YY",D2->Date)
            ))
            );
    Tout l'inverse de ce que je fais !
    Quand je suis à la maison, je ne touche à aucun ordi,
    mieux, j'en ai plus, le dernier a rendu l'ame, je ne l'ai pas remplacé,
    et je suis payé pour programmer, chez moi, je ne le suis plus
    moi à la maison c'est pour le plaisir de programmer , merci encore

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 722
    Points : 25 620
    Points
    25 620
    Par défaut
    Citation Envoyé par microbe83 Voir le message
    ça marche mais en inversant 2 paramètre :
    ?

    d'un point vue "logique", il n'y a pas de différence entre
    "DA_DEV>='%s' AND DA_DEV<='%s'" et
    "'%s' <= DA_DEV AND DA_DEV<= '%s'".

    tu changes l'ordre des variables et le sens de la comparaison, les deux DOIVENT donner le même résultat, ou alors c'est qu'il est obligatoire d'avoir une filtre le forme :

    "Champ op Valeur AND Champ2 op Valuer2",
    il ne supporte pas
    "Valeur op Champ AND Champ2 op Valuer2".

    Cela rentre-t-il dans le cas Field1 > Field2 :
    Les comparaisons de champs ne sont pas supportées sur des tables locales (Paradox, dBASE, Access, FoxPro).
    Dommage, c'est moins lisible car je trouve "0 < A et A < n" ressemble plus à "0 < A < n" que l'on a appris en math

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

Discussions similaires

  1. [SPS07] Comment faire un filtre entre deux dates ?
    Par Tybo34 dans le forum Développement Sharepoint
    Réponses: 11
    Dernier message: 23/07/2010, 10h42
  2. Réponses: 2
    Dernier message: 07/05/2010, 12h28
  3. [BO 5.1.6][Designer] Filtre entre 2 dates
    Par julien2602 dans le forum Designer
    Réponses: 42
    Dernier message: 15/02/2008, 17h19
  4. Creation d'un filtre entre 2 dates
    Par julien2602 dans le forum Designer
    Réponses: 4
    Dernier message: 09/01/2008, 12h05
  5. [ADO Table] Filtre entre deux dates
    Par aliwassem dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/04/2007, 13h36

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