Temps nécessaire pour suivre cette leçon : une grosse 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
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 se débrouille pour enregistrer les enregistrements. La leçon précédente va vous être particulièrement utile ici, car il va s'agir d'importer une table de clients d'une base de données externe. |
Afin de pouvoir bien comprendre comment Access filtre et trie les données, nous avons besoin d'un certain nombre d'enregistrements. Or, ce ne serait pas très "Fun" de devoir les saisir à la main, vous en conviendrez...
Aussi, vous ai-je sympathiquement préparé quelques tables "Prêtes à l'emploi" qui vont nous être d'une précieuse aide.
Marche à suivre :
Vous vous retrouvez maintenant avec une liste de 100 personnes célèbres.
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 différents problèmes que l'on rencontre fréquemment dans une base de données.
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 constatez 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 !!!
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" dont le nom n'est pas connu, et également à cause de plusieurs personnes sans prénom : "Coluche", "Hardi", ...
C'est justement le sujet de cette leçon : 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, les gens qui n'ont pas de nom connu étant classés en premier lieu.: . Bien entendu, les autres colonnes se sont automatiquement remises en ordre pour que les dates de naissance, salairres, etc. correspondent toujours aux mêmes personnes, heureusement... 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 !
Oui : Essayez ! La marche à suivre est toujours la même : Vous cliquez avec le bouton droit de la souris sur n'importe quel enregistrement de n'importe quelle colonne, et vous choisissez "Ordre croissant" ... ou "Ordre décroissant"... Si vous triez par les salaires du plus pauvre au plus richie, demandez un tri décroissant de la colonne des salaires...
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 malheureuse exception : Le champ "Remarque"... On ne peut pas le trier. Je vous l'avais déjà signalé à la leçon 6... Vous en seouvenez-vous ?
Impossible !
Oui, impossible : par quel champ voudriez vous la trier ? Et surtout, quelle serait l'utilité de rétablir la liste des célébrités dans l'ordre initial ?
Je vais vous aider : Par exemple, si vous vouliez lister les gens avec l'ordre dans lequel vous les avez saisi !
En fait, dès que vous avez fait un premier tri, vous ne pouvez plus retrouver cet ordre initial de saisie.
Alors, comment feriez-vous ? Réfléchissez !
Exactement. Mais comme nous ne l'avons pas fait, c'est définitivement fichu.
Finalement, c'est un problème vraiment mineur.
Oui. Regardez en bas de votre écran : . Vous êtes sur le Xème (12ème ici) 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" : . Dès à présent, vous n'avez plus sous les yeux que les gens mariés. En bas de votre écran, vous visualisez l'affichage suivant : : Il n'y a plus 100 enregistrements, mais bien 54 (les 54 personnes "Marié(e)s"). Le mot Filtré apparait pour bien vous en faire prendre conscience.
Cliquez avec le bouton droit de votre souris n'importe où dans la table, et choisissez . Tout le monde est de retour: .
Evidemment : Extrayez tous les hommes (Monsieur), et triez-les ensuite par ordre alphabétique de leur prénom. Vous devriez obtenir 69 enregistrements dont les 5 premiers sont vides. Viennent ensuite Al, Alberto, Alfred, etc...
Oui : Pour commencer, n'oubliez par de cliquer avec le bouton droit et "Afficher tous les enregistrements".
Ensuite, vous extrayez les Pays : "France", et ensuite, vous extrayez les EtatCivil : "Marié(e)". Vous devriez visualiser 31 personnes.
Oui. A titre d'exercice, essayez d'extraire les hommes célibataires. (Il y en a 14)
C'est certain. 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 "Filtrer pour"Ecrivez-y : >10000 et appuyez sur la touche Enter de votre clavier. Il y a 60 enregistrements, échelonnés de 10200 à 30000 (Triez par ordre croissant pour vous en rendre compte).
Si ! Mais pour les faire apparaître, il faut écrire >=10000 au lieu de >10000 . Essayez. .Vous en obtenez bien 61 cette fois ?
Evidemment.
Oui. 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 masquer.
Finalement, il ne vous reste plus que 8 personnes qui gagnent moins de 4000 francs par mois.
Bien sûr : Dans la zone "Filtrer pour", écrivez exactement ceci : Entre 10000 et 12000 , et appuyez sur Enter. vous devriez voir 14 personnes (10000 et 12000 inclus)
NON NON NON !!! Ce n'est pas un simple chiffre qui est représenté dans la le champ "DateNaissance", mais une DATE !
C'est <01.01.1940 qu'il vous faut écrire. Vous avez bien 23 "Vieux" ?
Dans la zone "Filtrer pour", écrivez d*
Non Access ne fait pas la différence entre les minuscules et les majuscules. Vous avez 10 personnes.
Maintenant, nous allons tenter une petite expérience : Recherchez tous les gens qui habitent la "France" : Vous obtenez 49 personnes. Maintenant, redemandez tous les enregistrements, et extrayez les gens qui sont d'origine du pays fr* . Vous allez également obtenir les français, mais... 51 cette fois ! 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 mieux pourquoi il faut être très rigoureux dans la saisie des données... Autrement, on a vite fait "d'égarer" ses données !
Bien plus tard, c'est à dire lors de la leçon40, quand nous serons bien implantés dans les formulaires et que nous aurons vu en détail le fonctionnement des requêtes, nous constaterons qu'il est possible d'enregistrer ses propres filtres sous forme de requête, et de les appeler ainsi, mais c'est une musique d'un avenir proche.
Nous allons à présent passer à autre chose: Nous n'allons plus filtrer les données, mais plus simplement rechercher un enregistrement. Par exemple, nous allons rechercher "Coluche". Bien entendu, nous pouvons filtrer "Coluche" dans la colonne des noms, mais admettons que nous ne désirons pas masquer les autres lignes. Nous voulons simplement nous placer 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 sélectionne Coluche, sans pour autant masquer les autres enregistrements: .
Faions un autre test : Restez dans la colonne des noms, et retournez dans le menu 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û être dans la colonne des prénoms avant de la rechercher.
Dans ce cas, vous vous placez dans n'importe quelle colonne (Par exemple la date de naissance), Edition/Rechercher, et choisissez , Cliquez sur "Suivant". Elle est débusquée, la coquine !
Grâce à cette astuce, nous allons pouvoir constater quelques interversions, vous allez voir : 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 les "Michel" qui se cacheraient à 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 de suite jusqu'à ce qu'il trouve Michel Rocard :
Constatez que les options de Edition/Rechercher sont très différentes que le filtrage obtenu avec le bouton droit de la souris. Ces deux fonctions sont complémentaires. La commande Edition/Rechercher existe dans la plupart des programmes : Excel, Word, mais aussi Internet Explorer ou PoerPoint possèdent cette fonction.
Comme dans tous les programmes, ça permet de rechercher du texte dans toute la table et de le remplacer par un autre texte. Donnons un exemple : Revenons à notre bon vieux filtre (Bouton droit de la souris). Filtrez tous les domaines "Chanson" : Vous obtenez 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, 5 de plus ! Eh oui : Comme cette table n'a (exprès dans ce cas, je l'avoue) pas été remplie de manière très catholique, 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". Ici, il n'y a que 5, on pourrait aisément les modifier manuellement, mais imaginons qu'il y en a 350 par exemple, c'est nettement plus pénible !
Nous allons remplacer les "Chanteuse" par des "Chanson" avec cette fonction Edition/Remplacer
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 installe Chanson tel quel |
Rechercher dans | Domaine (Le champ domaine seulement doit être parcouru, car il pourrait très bien y avoir le mot "Chanteuse" dans un autre champ comme la remarque par exemple, auquel cas on ne veut pas y toucher) |
Ou | Champ entier (On aurait choisi "n'importe où dans le champ" que ça n'aurait pas changé grand chose dans ce cas précis, puisque de toute façon il n'y a qu'un seul mot dans ce champ : Chanteuse) |
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 sur lequel vous vous trouvez. |
Cliquez sur "Remplacer tout". Access vous prévient qu'il ne sera pas possible d'annuler cette opération: . Prudence, donc ! Répondez Oui, et cliquez ensuite sur "Annuler". C'est terminé. Voyons si effectivement nous avons 17 chanteurs (17 "Chanson"): Filtrez tous les "Chanson" : Ca marche !
Access permet de jongler avec les données
de multiples manières: Tris et extractions de données,
recherche et remplacement, tout est possible. Par contre, pour que les tris et les extractions puissent fonctionner correctement, il est indispensable 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 attention 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 d'effectuer quelques recherches
et filtres dans votre base de données ProFormation, où plus
exactement dans T_Celebrite.
|
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