Filtrage entre deux dates

Analyste2023 Messages postés 3 Date d'inscription samedi 10 juin 2023 Statut Membre Dernière intervention 13 juin 2023 - 10 juin 2023 à 13:07
 Analyste2023 - 23 juin 2023 à 17:01

bonjour la communauté, c'est mon premier message dans le groupe, je suis entrain de concevoir une application sur delphi 10.3 et la base de donnée conçu sur 

wampserver, mon probleme est que je voudrai filtrer les données par rapport a deux dates c'est a dire  si l'utilisateur choisit 10/06/2023 au 30/06/2023 que l'application lui affiche seulement les données de cet intervalle 

merci pour votre aide ça fait 1mois que je n'ai pas de solution 

3 réponses

Whismeril Messages postés 19034 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 mai 2024 656
11 juin 2023 à 11:24

Bonjour

je ne code pas en Delphi, donc je ne peux pas t'apporter une solution directe, mais puisque personne ne t'a répondu, je vais tenter de te décrire les étapes.

  • Faire saisir les dates à l'utilisateur.
  • Écrire la requête de base de données, si c'est du SQL ça doit ressembler à 
    select * from maTable
    where leChampDate Between date1 and date2;
  • Afficher le résultat de la requête (plus ou moins comme tu affiches la table complète aujourd'hui)

1
Analyste2023 Messages postés 3 Date d'inscription samedi 10 juin 2023 Statut Membre Dernière intervention 13 juin 2023
12 juin 2023 à 09:47

bonjour Mr Whismeril,

merci beaucoup pour votre intervention, vous m'avez mis sur une tres bonne piste ,je vais exploiter votre demarche et je vous tient informer de la suite  encore merci

0
Sendyfoster Messages postés 2 Date d'inscription lundi 12 juin 2023 Statut Membre Dernière intervention 13 juin 2023
Modifié le 13 juin 2023 à 17:58

Bonjour,

Pour filtrer les données par rapport à deux dates dans votre application Delphi, vous pouvez utiliser une requête SQL avec une clause WHERE qui spécifie les conditions de filtrage. Voici un exemple de code qui illustre comment vous pouvez réaliser cela : 

// Supposons que vous avez deux variables contenant les dates choisies par l'utilisateur
var
  dateDebut, dateFin: TDateTime;
  query: TFDQuery;
begin
  // Assurez-vous que votre base de données est connectée

  // Créez une requête SQL avec une clause WHERE pour filtrer les données par rapport à l'intervalle de dates
  query := TFDQuery.Create(nil);
  try
    query.Connection := // Spécifiez votre connexion à la base de données
    query.SQL.Text := 'SELECT * FROM votre_table WHERE date_colonne >= :debut AND date_colonne <= :fin';
    query.ParamByName('debut').AsDateTime := dateDebut;
    query.ParamByName('fin').AsDateTime := dateFin;
    query.Open;

    // Traitez les données récupérées
    while not query.Eof do
    begin
      // Accédez aux valeurs des colonnes et effectuez les opérations souhaitées
      // Exemple : ShowMessage(query.FieldByName('nom_colonne').AsString);
      
      query.Next;
    end;
  finally
    query.Free;
  end;
end;

Dans cet exemple, assurez-vous de remplacer "votre_table" par le nom de la table dans votre base de données contenant les données à filtrer, et "date_colonne" par le nom de la colonne contenant les dates.

0
Analyste2023
21 juin 2023 à 18:18

bonjour Sendyfoster, excusez moi de vous repondre en retard , j'etais un peux deconnecter du net depuis deux semaines, merci pour votre le code je vais essayer d'appliquer ce que vous avez detailler et je vous reviens pour le resultat, encore merci

0
Analyste2023
21 juin 2023 à 19:32

s'il vous plait ,on met souligne une erreur sur  la declaration  query: TFDquery,vous voulez bien m'expliquer cette ligne? merci

0
Analyste2023
23 juin 2023 à 17:01

bonjour Sendyfoster,

j'ai essayer votre code ,mais je suis coincer sur la declaration  "query :TFDQuery;" si vous voulez bien m'expliquer ce que cela signifie car cette declaration me genere une erreur, merci d'avance

0
Rejoignez-nous