1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Filtrer dans deux dates sur une table (mysql natif)

Discussion dans 'Résolution problème & conseils' créé par thanosdk, Oct 10, 2024.

  1. thanosdk

    thanosdk New Member

    Inscrit:
    Jan 27, 2024
    Messages:
    3
    J'aime reçus:
    0
    Salut a tous,

    Dans mon application j'ai une table ou il y a une colonne SaisiLe, ce que j'essaye de faire:

    Deux champs date avec calendrier, un bouton pour generer le filtre et afficher les enregistrements pour les dates choisies.

    J'utilise windev 25. J'ai essaye pas mal de structures, de fonctions, de requetes, rien a faire.

    Ce qui se passe, dans la table sous windev, la colonne s'appele COL_SaisiLe et sous mysql SaisiLe,

    J'ai evidemment bien essayer de renommer la colonne dans mysql a COL_SaisiLe/SaisiLe et vice versa.

    La forme de date dans mysql est AAAA-MM-JJ dans windev la table affiche JJ/MM/AAAA

    J'ai utilise pleinement Trace/Debug etc, les champs prennent bien les valeurs. J'ai configure tous mes autres champs pour filtrer, et ils marchens impec., il manque que les champ dates.

    Je sais plus trop quoi faire. Je suis debutant encore, j'ai pas mal appris a pleins d'autre choses dans windev, mais la je colle.

    Mes champs: SAI_DateDebut champ de date, SAI_DateFin champ de date, BTN_FiltreParDates bouton, Table: TABLE_Client dans windev, Client sous mysql.

    N'importe quelle aide est la bienvenue!
     
  2. WDnet

    WDnet Member

    Inscrit:
    Mar 9, 2022
    Messages:
    59
    J'aime reçus:
    55
    Salut
    essaye un ChaineVersDate de la valeur de SAI_DateDebut et SAI_DateFin pour le filtre
     
  3. thanosdk

    thanosdk New Member

    Inscrit:
    Jan 27, 2024
    Messages:
    3
    J'aime reçus:
    0
    Merci pour ta reponse rapide!

    J'essaie ceci:

    Code (Text):

    // Récupération des dates saisies dans les champs de saisie
    pDateDebut est une Date = SAI_DateDebut..Valeur
    pDateFin est une Date = SAI_DateFin..Valeur

    // Vérification que la date de début est antérieure ou égale à la date de fin
    SI pDateDebut > pDateFin ALORS
        Info("La date de début doit être antérieure ou égale à la date de fin.")
        RETOUR
    FIN

    // Conversion des dates au format compatible avec MySQL
    pDateDebutMySQL est une chaîne = DateVersChaîne(pDateDebut, "AAAA-MM-JJ")
    pDateFinMySQL est une chaîne = DateVersChaîne(pDateFin, "AAAA-MM-JJ")

    // Exécution de la requête pré-définie avec les paramètres
    SI PAS HExécuteRequêteSQL("RequeteClient2EntreDates", MaConnectionSQL, pDateDebutMySQL, pDateFinMySQL) ALORS
        Erreur("Erreur lors de l'exécution de la requête SQL : " + HErreurInfo(hErrMessage))
        RETOUR
    FIN

    // Recharge le contenu de la table avec les données filtrées
    TableAffiche(TABLE_Client_Revmata, taInit)

     
    Ma Requete RequeteClient2EntreDates:

    Code (Text):

    SELECT * FROM Client2 WHERE SaisiLe BETWEEN {pDateDebut} AND {pDateFin}
     
    J'ai essaye plusieures variations, toujours un probleme de syntaxe pour HExecuteRequeteSQL.
     
  4. thanosdk

    thanosdk New Member

    Inscrit:
    Jan 27, 2024
    Messages:
    3
    J'aime reçus:
    0
    J'ai reussi merci pour l'aide.
     

Partager cette page

Chargement...