Temps
nécessaire pour suivre cette leçon : Une bonne demie heure
Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données ProFormation.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici
Dans cette leçon, nous allons voir comment extraire des dates ou des plages de dates. Nous verrons qu'il ne faut pas confondre les dates et les années. Nous aborderons également la possibilité d'extraire des enregistrements qui ne contiennent rien, ainsi que la possibilité d'extraire les gens décédés (Oui ou Non). Enfin, nous verrons qu'il est possible de masquer certaines colonnes si besoin est. |
Non. Il s'agit d'une date, donc, vous ne pouvez pas simplement indiquer l'année.
Vous êtes obligé d'écrire comme critère <1.1.1960.
Essayez : Créez une nouvelle requête comme d'habitude, et demandez
le Prénom, le Nom et la date de naissance. Comme critère de la
date de naissance, écrivez <1.1.1960.
Lorsque vous appuyez sur ENTER, ou que vous cliquez dans une autre case, Access
transforme cette date comme ceci : <#01.01.1960#.C'est
normal :
Lancez la requête. Vous obtenez 55 résultats, tous antérieurs au premier janvier 1960. Enregistrez cette requête sous R_CelebriteVieille, avec la description DateNaissance : < #01.01.1960#.
Le critère serait : Entre 1.1.1930 et 31.12.1939. Et PAS Entre 1930 et 1939, donc ! Essayez : Créez cette requête extrayant toutes les célébrités nées dans les années 30. Vous devriez en obtenir 10. Enregistrez cette requête sous R_CelebriteAnnee30, avec la description DateNaissance Entre #01.01.1930# Et #31.12.1939#.
C'est assez difficile... La preuve est que toutes les dates de naissance que j'ai mis sont fictives, donc fausses.
Par contre, on peut essayer de filtrer les dates de naissances vraissemblablement fausses, comme par exemple les dates de naissances postérieures à l'an 2000 et antérieures à l'an 1900...
Ah non ! Personne n'est né à la fois avant 1900 et après
1999 ! Ce serait <#01.01.1900# OU
>#31.12.1999#. Mais ne serait-ce pas encore plus élégant
d'écrire Pas
Entre #01.01.1900# Et #31.12.2000#. Essayez : Créez une nouvelle
requête comme d'habitude, avec le critère de la date de naissance
: pas entre 1.1.1900
et 31.12.1999. Vous obtenez ce résultat : .
On voit d'un coup d'oeil que Napoléon, Walt Disney et Sacha
Guitry ont des dates de naissance vraissemblables... Par contre Michel Simon,
Johnny Weissmuller et Cathy Zeta-Jones ont des dates de naissances fatalement
erronées puisque si on en croit notre résultat, ces personnes
ne seraient pas encore nées... L'erreur de saisie provient vraissemblablement
du fait que la personne qui a saisit la date de Michel Simon par exemple a écrit
15.12.20 au lieu de 15.12.1920... Et Access à compris 2020 au
lieu de 1920... Vous vous rappelez ? C'était dans la leçon
7.
Ne corrigez pas ces erreurs de dates, et fermez cette requête en l'enregistrant sous le nom R_CelebriteDateNaissanceIncorrecte. Description : DateNaissance : Pas Entre #01.01.1900# Et #31.12.1999#
Non. ça ne marchera pas.
Non plus. En fait, 0 n'est pas la même chose que rien en informatique... C'est comme ça.
Pour obtenir les gens dont la date de naissance n'est pas connue, vous devez
écrire null comme critère
de la date de naissance : .
Lorsque vous appuyez sur Enter, ou que vous cliquez dans une autre case, null
se transforme en Est Null.
ATTENTION : Il faut bien écrire NULL. Pas NUL ni NULLE ! Créez cette nouvelle requête avec null comme date de naissance, et Lancez-là : Vous obtener 14 enregistrements, dont la date est chaque fois inconnue.
Enregsitrez cette requête sous R_CelebriteDateNaissanceInconnue, et mettez la description "DateNaissance : Est Null"
Exactement, oui, et, par opposition, si vous vouliez l'ensemble des gens qui ONT UNE remarque, vous écririez Pas Null. Essayez : Créez une nouvelle requête comme d'habitude, avec le nom, le prénom et la remarque, mettez Pas Null comme critère de Remarque, lancez la requête pour constater que vous avez bien 50 enregistrements, tous avec une remarque (par déduction, vous pouvez dire qu'il y a une personne sur deux qui a une remarque, puisque nous avons exactement 100 enregistrementsen tout). Le Pas Null se transforme automatiquement en Est Pas Null, c'est normal. Enregistrez cette nouvelle requête sous R_CelebriteAvecRemarque, avec la description : "Remarque : Est Pas Null".
Essayons : Créez une nouvelle requête comme d'habitude, toujours basée sur T_Celebrite, et installez les champs Prenom, NomClient, et Decede.
Lancez la requête telle quelle pour simplement constater que ça reste une case à cocher, même dans une requête. Revenez en mode création. Le critère de Decede est soit Vrai, ou Oui, ou même -1.
Oui. Essayez :
En fait, c'est lié à la structure interne de la mémoire de votre ordinateur. Sur tous les PC, quelque soit le contexte, Vrai (Oui) est représenté par -1, et Faux (Non) est représenté par 0. Mais pour que la vie nous soit plus facile, Access permet de modifier ce -1 par Oui, ou Vrai, et 0 par Non ou Faux.
Parfaitement. Bon, nous n'allons pas le faire car c'est vraiment la même chose.
Fermez votre requête, et vous êtes maintenant en possession de 3 nouvelles requêtes : R_CelebriteDecedeeVrai, R_CelebriteDecedeeOui et R_CelebriteDecedee-1. Je pense que maintenant, vous avez bien compris l'histoire des descriptions : Je vous laisse leur injecter des descriptions appropriées.
ATTENTION DONC : Si vous mettez quelque
chose d'idiot comme critère de Decede,
Par exemple "Vivant", non seulement
ça ne veut rien dire, mais vous allez carrément avoir cette erreur
: . Vous pouvez
essayer juste pour voir. (ne Enregistrez pas cette requête, c'est juste
pour montrer l'erreur)
Passons maintenant à un autre sujet, mais en restant toutefois dans l'histoire des cases à cocher. Créez une requête toute simple qui extrait les sportifs (Le prénom, le nom, le domaine, avec comme critère de domaine : "sport"). Lancez cette requête toute bête : Vous avez la liste de tous les sportifs. C'est normal, c'est ce qu'on a demandé.
D'ailleurs, dans la colonne Domaine, il est indiqué chaque fois Sport, Sport, Sport, Sport... Bon ben oui, on sait, c'est ce qu'on a demandé ! Inutile de le répéter comme un perroquet sur toute la colonne !
Nous allons masquer cette colonne. Nous aurons toujours la liste des sportifs,
mais seuleemnt le prénom et le nom. Revenez en mode création de
cette requête. Décochez cette case : .
Relancez la requête : Cette fois, vous avez les mêmes 17 personnes,
mais, la colonne Domaine n'est plus représenté. Enregistrez cette
requête sous R_CelebriteSportiveDomaineInvisible,
avec la description : Domaine : "sport",
pas de coche
ATTENTION donc : Il est fort possible que vous cliquiez par mégarde sur cette coche, et que vous vous demandiez pourquoi tel ou tel champ n'apparait pas : Vous savez maintenant pourquoi !
Exactement.
Lorsqu'il s'agit d'extraire des plages de dates, il ne faut pas utiliser simplement l'année, mais des dates complètes (entre 1.1.1980 et 31.12.1989). Les dates s'encadrent automatiquement de dièses #. Lorsqu'il s'agit de récupérer les enregistrements dont certains champs sont vides (non renseignés), il ne faut pas indiquer 0 comme critère, mais Null, ou Pas Null. Les cases à cocher représentent Oui ou Non, Vrai ou Faux, -1 ou 0. Ce sont donc ces mots-clés qu'il faut utiliser lors qu'on veut extraire par exemple les gens décédés. Enfin, en mode création de la requête, la case àcocher se trouvant juste au dessus du critère permet de masquer telle ou telle colonne, alors qu'on lui a pourtant attribué un critère. |
Toutes les questions sont simplement basées sur un critère placé sur le champ DateNaissance
Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses. |
Il ne s'agit pas de créer une nouvelle base de données, mais vous allez devoir créer quelques requêtes dans votre base de données ProFormation. Toutes les requêtes seront basées sur T_Celebrite, et devront contenir au minimum le Prénom et le NomClient.
Téléchargez la solution de l'exercice ici, qui n'est autre que ProFormation tel qu'il devrait être à la fin de cette leçon |
Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.
Avez-vous une question technique
concernant cette leçon ? Cliquez
ici !
Une remarque sur cette leçon ? Un problème
? Une erreur ? une ambiguité ? Soyez
gentil de m'en informer