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