![]()
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 procd.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
| La dernière fois, nous avons vu qu'Access s'ouvre complètement sur le monde extérieur en permettant d'importer n'importe quoi et en exportant les tables dans différents formats, ce qui vous permet une souplesse formidable. |
| Cette fois, nous allons aborder un sujet bien différent : Comment faire pour trier et extraire les différents enregistrements d'une table. Nous allons également voir exactement comment Access fait pour sauvegarder les enregistrements. La leçon précédente va vous être particulièrement utilie ici, car il va s'agit d'importer une table de clients d'une base de données externe. |
Afin de pouvoir comprendre correctement comment Access filtre et trie les données, nous avons besoin d'un certain nombre de données. Or, ce ne serait pas trus amusant de devoir les saisir à la main, aussi, vous ai-je préparé quelques tables "Prêtes à l'emploi" qui vont nous être d'une précieuse aide. Marche à suivre :
Voilà. Vous vous retrouvez maintenant avec une liste de 100 personnes célèbres. Il s'agit de célébrités et pas de noms au hasard uniquement car il est plus aisé de retenir le nom de personnes célèbres que d'inconnus. Vous verrez qu'il y a une colonne de salaire, d'état civil et de date de naissance. Ces renseignements sont le fruit de ma pure imagination. Ouvrez donc cette T_Celebrite afin de vous rendre compte de sa taille et de son contenu. Ne l'apprenez pas par coeur, mais regardez-là attentivement : Si vous êtes suffisemment attentifs, vous y décèlerez quelques erreurs et fautes d'orthographe. Ne les corrigez pas : Elles sont intentionnelles, et serviront à illustrer les problèmes que l'on peut rencontrer dans une base qui a des erreurs de données.
Non. Je n'ai pas ajouté d'IDCelebrite, mais ce serait tout à fait possible
Impossible. Essayez, vous verrez : Il y a une personne qui n'a pas de nom : Loana, et deux Hallyday (Le père et le fils)
Non plus ! Toujours à cause de Loana qui n'a pas de nom, et également à cause de plusieurs célébrités qui n'ont pas de prénom : Coluche, Hardi, ...
C'est justement le sujet de cette leçon, c'est d'arriver à trier et extraire
les enregistrements. Nous allons commencer par trier les gens par leur nom de
famille. Pour ce faire, vous cliquez avec le bouton droit de votre souris sur
n'importe quel nom, et vous choisissez (avec le bouton droite ou gauche) "Tri
alphabétique" :
. Ce qui vous permet de visualiser tous les gens triés par nom
de famille, et, avant les "A", les gens (en l'occurrence Loana) qui n'ont pas de
nom de famille :
. Bien entendu, les autres colonnes ont suivi :
Heureusement que tous les autres champs se réorganisent en fonction de vos tris ! Sinon, quel désordre ! D'ailleurs, avec Excel, vous avez peut-être déjà été victime d'un tri malencontreux qui n'a trié que la colonne sur laquelle vous étiez sans tenir compte des autres colonnes, ce qui a donné un fouillis inextricable ! Avec Access, ce souci n'existe absolument pas, et c'est tant mieux !!!
Oui : Essayez ! La marche à suivre est toujours la même : Vous cliquez avec le bouton droit de la souris sur n'importe quelle colonne, et vous choisissez "Ordre croissant" ... ou "Ordre décroissant"... Si par exemple, vous demandez un tri par les salaires du plus pauvre au plus richie, vous demandez un tri décroissant de la colonne des salaires : Essayez !
Et si vous vouliez les trier du plus jeune au plus vieux, comment feriez-vous ? Essayez également !
En fait, il y a quand même une exception : C'est le champ Remarque... On ne peut pas le trier. Mai ça, je vous l'avais déjà signalé à la leçon 6... Vous vous souvenez ?
Impossible !
Eh bien oui : par quoi voudriez vous-trier ? Et, surtout, quelle pourrait bien être l'utilité de remettre la liste des célébrités dans l'ordre dans lequel elles étaient ???
Je vais vous aider : Par exemple, si vous vouliez avoir les clients dans l'ordre dans lequel vous les avez saisi ! Dès que vous avez fait un tri, vous ne pouvez plus retrouver cet ordre
Alors, comment feriez-vous ? Réfléchissez !
Exactement. Mais comme nous ne l'avons pas fait, c'est fichu. Bon ce n'est ici vraiment pas important.
Oui. Regardez en bas de votre écran :
. Vous êtes sur le Xème
enregistrement sur un total de 100. Bien. Maintenant, vous allez cliquer
avec le bouton droit de votre souris sur un "Marié(e)" quelconque, et choisisr
"Filtrer par sélection" :
. Maintenant, vous n'avez plus que les gens mariés, et
en bas de votre écran, vous avez maintenant l'affichage suivant :
: Il n'y a plus 100
enregistrements, mais 54 (les gens mariés). Le mot Filtré apparait pour bien
vous en faire prendre conscience.
Cliquez avec le bouton droit de votre souris n'importe ou dans la table, et
choisissez
. Vous avez à nouveau tous vos enregistrements : ![]()
Absolument, oui : Essayez : Extrayez tous les hommes (Monsieur), et triez-les par ordre alphabétique des prénoms. Vous devriez obtenir 44 enregistrements dont les 5premiers sont vides, puis Al, Alberto, Alfred, etc...
Oui : Bon, pour commencer, n'oubliez par de cliquer avec le bouton droit et "Afficher tous les enregistrements". Ensuite, vous extrayez les "France", et ensuite, vous extrayez les "Marié(e)". Vous devriez trouver 31 personnes
Exactement. Essayez par exemple d'extraire les hommes célibataires. Il y en a 14
Oui. Pour ce faire, vous allez cliquer avec le bouton droit de la souris sur
n'importe quel salaire, et vous cliquez avec le bouton droit ou gauche de la
souris dans la zone blanche "Filtrer pour", vous écrivez ">10000"
et vous
appuyez sur la touche Enter
de votre clavier. Vous devriez avoir 60
enregistrements, échelonnés de 10200 à 30000 (Triez par ordre croissant pour les
voir).
Si. Mais pour les voir apparaître, il faut taper ">=10000" au lieu de ">10000". Essayez. (N'oubliez pas de faire apparaître tous les enregistrements avant ça, sinon, ça ne va évidemment pas fonctionner). Vous en obtenez bien 61 cette fois ?
Evidemment.
Oui. Pour ce faire, vous cliquez sur un 0 quelconque avec le bouton droit de votre souris, et vous choisissez "Filtrer Hors sélection", ce qui aura pour effet de les éliminer. Finalement, il vous reste 8 personnes qui gagnent moins de 4000 francs par mois.
Oui : Dans la zone "Filtrer pour", vous écrivez : Entre 10000 et 12000, et vous appuyez sur Enter. vous devriez voir 14 personnes, 10000 et 12000 étant inclus.
NON NON NON !!! Ce n'est pas un simple chiffre qu'il y a dans la date de naissance ! C'est <01.01.1940 qu'il faut écrire. Vous avez bien 23 "Vieux" ?
Oui : Dans la zone "Filtrer pour", écrivez d* et Enter
Non Access ne fait pas la différence entre les minuscules et les majuscules. Vous avez 10 personnes.
Maintenant, nous allons faire une petite expérience : Recherchez tous les gens qui habitent la "France" : Vous obtenez 49 personnes. Maintenant, redemandez tous les enregistrements, et demandez les gens qui sont d'origine de fr*. Vous allez également obtenir les français, mais... 51 cette fois ! Vous avez trouvé pourquoi ?
Vous n'avez qu'à cliquer avec le bouton droit de votre souris sur n'importe quelle "France" et demander "Filtrer Hors sélection"
Eh oui... Vous comprenez maintenant parfaitement pourquoi il faut être très rigoureux dans la saisie des données... On perd facilement des enregistrements sinon...
Bien. Maintenant, nous allons passer à un autre genre de recherche : Nous n'allons plus filtrer, mais simplement rechercher un enregistrement. Par exemple, nous allons rechercher Coluche. Bien entendu, nous pouvons filtrer "Coluche" dans la colonne des noms, mais nous ne voudrions pas masquer les autres lignes. Nous voulons simplement arriver sur Coluche facilement.
Pour ce faire, vous cliquez avec le bouton GAUCHE de votre souris sur
n'importe quel nom. Allez ensuite dans le menu Edtion/Rechercher, écrivez
"coluche" dans la zone "rechercher", et cliquez sur "Suivant":
. Access vous place sur
Coluche en Noir sans pour autant masquer le reste :
.
Nous allons faire un autre test : restez dans la colonne des noms, et faites
Edition/Rechercher Loana, et cliquez sur Suivant. Le message d'erreur apparait :
simplement parce que Loana n'est pas un nom mais un prénom. Vous auriez dû vous
placer dans la colonne des prénoms avant de la rechercher.
Alors dans ce cas, vous vous placez dans n'importe quelle colonne (Par
exemple la date de naissance), vous faites Edition/Rechercher, et vous
choisissez
, et vous cliquez sur "Suivant". Il la trouve.
Grâce à cette astuce, nous allons pouvoir constater quelques interversions :
Cliquez dans n'importe quel champ (par exemple titre) et faites
Edition/Rechercher : michel,
, et cliquez sur Suivant. Le premier Michel Rencontré
est Michel Piccoli. D'entrée de jeu, il y a une erreur : Le nom et le prénom ont
été échangés de place (Ne le corrigez pas) !. Voyons s'il y a d'autres michel :
Cliquez sur Suivant : Nous arrivons sur Michel Simon qui lui, est correct.
Cliquez encore sur Suivant : Michel Blanc, rien à dire. Suivant : Michel Noir.
Suivant : il n'y a pas d'autre michel, Access nous en informe :
.
Pas encore ! Il existe peut-être d'autres Michel dans cette table. Jusqu'ici,
nous avons cherché les champs entiers. C'est à dire que s'il y avait eu un
Jean-Michel, Access ne l'aurait pas trouvé. Pour trouver également les Michel
qui se trouveraient à l'intérieur d'un champ sans pour autant être la totalité,
Faites Edition/Rechercher, dans la zone "Ou", choisissez "N'importe ou dans le
champ"
,
Recherchez dans "T_Celebrite : Table" et cliquez sur "Suivant" plusieurs fois
jusqu'à ce qu'il trouve : 
Vous voyez que les options de Edition/Rechercher sont très différentes que le filtrage obtenu avec le bouton droit de la souris.
Comme dans tous les programmes, ca permet de rechercher du texte dans toute la table et de le remplacer par un autre texte. Nous allons justement faire un exemple. Revenons à notre bon vieux filtre (Bouton droit de la souris). Filtrez tous les domaine "Chanson" : Vous avez 12 résultats... Oui, maiiiiiis... Redemandez tous les enregistrements, et filtrez cette fois tous les enregistrements dont le domaine est chan*
Cette fois, c'est 17 enregistrements que vous obtenez... Eh oui : Comme cette table n'a (exprès dans ce cas) pas été remplie de manière stricte, et que "Limiter à liste : Oui" (Ca vous rappelle des souvenirs ?) n'a pas été défini avant d'entrer les données, nous avons quelques personnes qui sont "Chanteuse" à la place de "Chanson". Bon, ici il n'y aen a que 5, on pourrait les modifier à la main, mais imaginons qu'il y en a 350... Eh bien, nous allons remplacer les "Chanteuse" par des "Chanson". Marche à suivre :

| Rechercher | chanteuse : C'est le mot qu'on recherche (Inutile de mettre une majuscule - Access ne fait pas la différence tant qu'on ne met pas une coche dans "Respecter la casse") |
| Remplacer par | Chanson : C'est le texte qui va remplacer chanteuse. Ici, j'ai mis la majuscule à Chanson pour qu'Access la mette |
| Rechercher dans | Domaine (Le champ domaine seulement doit être scanné, parce qu'il pourrait très bien y avoir Chanteuse dans un autre champ, auquel cas on ne veut pas y toucher) |
| Ou | Champ entier (On aurait choisi n'importe ou dans le champ que ça n'aurait pas changé grand chos dans ce cas précis, puisque de toute façon il n'y a qu'un seul mot dans ce champ) |
| Sens | Tout (Pour voir cette option, vous devez cliquer sur le bouton
">>Plus", qui se trouve juste en dessous de "Remplacer tout", qui se
transforme automatiquement en "<<Moins") "Tout" veut dire que comme vous n'êtes pas forcément sur le premier enregistrement de votre table, il faut qu'Access aille rechercher les Chanteuse avant ET après l'enregistrement ou vous êtes |
Cliquez sur "Remplacer tout". Access vous prévient qu'il ne sera
pas possible de revenir en arrière :
. Dites Oui, et cliquez
sur "Annuler". C'est terminé. Voyons si effectivement nous avons 17 chanteurs :
Filtrez tous les "Chanson" : Ca marche !
| Access permet de jongler avec les données dans tous les sens : Tris et extractions de données, recherche et remplacement, tout est possible. Par contre, pour que les tris et les extractions puissent correctement fonctionner, il est nécessaire que les données ne contiennent pas de fautes d'orthographes ou d'erreurs de saisie, sinon... On aura l'impression qu'Access "perd" des données. Faites ettention lors du remplacement automatique de données, car vous ne pourrez plus revenir en arrière. |
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. |
|
Cette fois, vous n'aurez pas besoin de télécharger une base de données, car il s'agit de faire quelques recherches et filtres dans la base de données ProCD, plus exactement dans T_Celebrite. Pour chaque filtre, notez le nombre d'enregistrements que vous obtenez avant de lire la solution. ATTENTION : C'est moins facile qu'il n'y parait !!!!
|
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 procd.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.