Jean Sympa a écrit :
Merci Docgranville,


Ton aide est fort précieuse, tes explications sont toujours claires et instructives.


J'utilise une table contenant la date de naissance. Ce que je veux, c'est afficher MMJJ, triée, dans une colonne, afin de retrouver, aisément, des dates anniversaires du jour et celles des jours environnants. Voici un exemple contenant des colonnes qui m'intéressent.


Clé

MMJJ

Nom

Prénom

Tél. fixe

Tél. Portable


J'aimerais saisir la date naturellement (JJ-MM-AAAA) et extraire pour l'afficher, dans une requête MMJJ. Cette solution a ma préférence.


Si cela n'est pas possible j'ai le choix entre deux autres solutions:


- Scinder la date en trois champs: JJ, MM et AAAA. Cela donnerait à l'utilisateur l'impression de saisir une date habituelle JJMMAAAA.


- Saisir la date inversée (AAAAMMJJ) et la scinder en deux champs : AAAA et MMJJ.

Cordialement

Papy
Bonjour Jean,

Tes explications me conduisent de nouveau à des questions, désolé ; lorsque tu dis "J'aimerais saisir la date naturellement" tu parles de saisir les données dans ta table (au moment où tu la remplis) ou d'autre chose ?

Si tu parles bien de la saisie initiale des données dans la table, la question ne se pose pas vraiment, dès lors que tu saisis tes données par le biais d'un formulaire ; on l'a déjà évoqué à plusieurs reprises mais il est toujours bon de le rappeler : aux tables, ne doit être confié que le soin de stocker les données brutes et rien d'autre ; peu importe comment elles sont stockées, l'essentiel étant que leur intégrité soit conservée et que je puisse y accéder à chaque fois que je le souhaite ; la présentation des données (ou d'une partie d'entre elles), c'est le rôle du formulaire (ou du rapport).

Concernant la saisie initiale des données :
Dans ton formulaire destiné à la saisie, il te suffit de formater le champ correspondant à la date de naissance, selon le format que tu souhaites (en l'occurrence, je crois avoir compris que tu souhaitais JJ-MM-AAAA) ; pour cela, je te rappelle que tu effectues un clic droit sur le champ de saisie correspondant et, dans le menu contextuel, tu choisis "Contrôle" ; une boîte de dialogue s'ouvre, qui comporte trois onglets (Général, Données, Evènements) dont seul le premier (Général) nous intéresse ; la douzième ligne de cet onglet concerne le formatage du champ et en cliquant sur les trois points qui figurent à droite de la zone de saisie, tu ouvre une nouvelle boîte de dialogue, qui ressemble à s'y méprendre à celle permettant le formatage d'une cellule dans un tableur ; parmi les propositions présentes, tu trouveras la catégorie "Date" et les différents formats possibles ; tu choisis donc celui qui te convient ; si, comme je l'imagine, tu choisis JJ-MM-AAAA, le logiciel saura que les 2 premiers chiffres que tu indiqueras seront ceux des jours, les deux suivants (après le tiret) ceux du mois et les 4 derniers, ceux de l'année ; ça lui permet donc de dialoguer avec ta table en sachant comment ré-arranger tes données pour qu'elles puissent être stockées tout en conservant leur intégrité (que le mois ne soit pas transformé en jour par exemple) ; dans la table, comme je l'ai dit dans mon message d'hier, la date sera stockée sous la forme AAAA-MM-JJ.

Concernant l'affichage des données :
L'affichage, une fois encore, doit avoir lieu dans un formulaire, en l'occurrence, un second formulaire (le premier étant celui destiné à permettre la saisie initiale des données) ; ici aussi, ce n'est qu'une question de formatage du champ de ton formulaire ; la donnée affichée comporte bien l'année (puisque tu l'as saisie) mais on ne demande pas au formulaire de l'afficher ; il te suffit dès lors de formater comme tu l'entends, à savoir JJ-MM ou MM-JJ ou autre chose encore si tu préfères.

Concernant l'extraction :
Enfin, si tu veux extraire tes données, en les triant sur la chronologie dans l'année (mais pas entre les années, ce qui signifie que le 18 Janvier 2005 vient avant le 22 Janvier 1936 mais après 5 Janvier 2004), il te faut recourir aux trois instructions que j'évoquais hier : DAYOFYEAR(), MONTH() et DAY() ; si le champ contenant la date de naissance est nommé DatNaiss tu termines ta requête par l'instruction ORDER BY DAYOFYEAR("DatNaiss"), MONTH("DatNaiss"), DAY("DatNaiss").

Espérant avoir aidé...

A+



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org

Répondre à