On veut pouvoir sélectionner une date de début et de fin comprise dans la période examinée.
Comment le faire en utilisant les macros de libre office ?
Bonjour
Il faudrait donner des précisions :
- souhaites-tu réaliser ce qu’affiche ta copie d’écran (contrôles de formulaire, liste déroulante, bouton, zones de saisie) ?
- Ou souhaites-tu savoir comment exploiter les données saisies dans ces contrôles ?
- dans quel module (les données sont-elles dans un tableau calc, une base de données, un tableau Writer… ?
Cordialement
Bonjour, ce sujet m’intéresse car j’essaye en vain au travers d’une requête (sous LibreOffice Base HSQLBD intégré) à sélectionner les personnes présentes une journée X comprise entre une date d’entrée et une date de sortie. J’ai mis mes dates au format américain. J’utilise la formule suivante : “Factures”.“DateEntree” >= :X AND “Factures”.“DateSortie” <= :Y . J’ai mis mes dates au format américain mais lorsque la boite de dialogue s’ouvre pour saisir mes dates X et Y bien que je saisisse ma date au format YYYY-MM-DD, Base reformate le format systématiquement en français JJ/MM/AAAA. D’après ce que j’ai pu lire à droite et à gauche mon souci pourrait venir de là . Si j’indique X = DateEntree et Y=DateSortie j’ai alors des résultats (les bons) qui s’affichent dans ma requête mais si je mets des dates intermédiaires je n’ai aucun résultat. J’ai essayé aussi la formule suivante " :X BETWEEN “Factures”.“DateEntree” AND “Factures”.“DateSortie” " mais aucun résultat.
Eric
Bonjour @Eric99
Il eût été préférable de créer ta propre question car la question de @blum porte sur les macros et la réponse que je peux te donner sera ici hors sujet. Merci de bien vouloir respecter cela dans le futur
Tu indiques :
J’ai mis mes dates au format américain
Je suppose que cela veut dire que, bien que dans un environnement utilisateur en français, tu as défini un format sur ces champs dans la table. Cela n’est qu’un format d’affichage, de même que dans Calc par exemple où la date est affichée dans un format mais est stockée “en interne” différement.
Autrement dit, la réponse est qu’il faut avoir une requête sous la forme :
SELECT "Nom", "DateNaissance" FROM "Table1" WHERE "DateNaissance" BETWEEN :x AND :y
Mais la saisie doit se faire avec un format “local” valide, soit par exemple 01/12/2019
ou 2019-01-12
(noter l’emploi du tiret dans le cas anglophone).
Cordialement
Bonjour, Merci de votre réponse et de votre suggestion. Je vais poser ma propre question car le résultat que je veux obtenir est légèrement différent. Eric