Leçon 17
 
Tris, filtres, visions et nettoyage des tables

Nous abandonnons la base de données de la leçon précédente au profit d'une nouvelle base de données !

>>> Téléchargez-là en cliquant ici avec le bouton droit de votre souris. <<<

Cette leçon est longue, mais elle n'est pas compliquée. Nous allons travailler avec une liste d'une centaine de clients, et nous allons apprendre à la visualiser, la parcourir, et à rechercher, trouver, filtrer et trier les enregistrements, par n'importe quel champ.

Nous allons également faire un grand ménage dans cette table, corriger les erreurs qu'elle contient, et faire en sorte de limiter les erreurs de saisie futures, car nous l'analyserons en détail.

Nous verrons également comment afficher les totaux des colonnes.

 
Sommaire

Nous partons sur des nouvelles bases ! ... Ou, plus exactement, je vous propose une nouvelle table T_Client ! Elle contient 100 clients, qui sont en fait des célébrités de tout temps et de tout domaine (pour faciliter les recherches).

Ouvrez T_Client, et parcourez-là des yeux de haut en bas et de gauche à droite.. Elle n'est ni trop grosse, ni trop petite : idéale pour faire plein d'exercices de recherches, filtres, tris, etc.

A priori, les données semblent correctes. Mais en y regardant de plus près, nous verrons de nombreuses imperfections !

Dans votre activité de développeur Access, vous serez certainement amené a parfois récupérer des tables existantes, remplies par d'autres, et il s'agira de faire un peu d'ordre dans tout ça !

Figer des colonnes

Comme il s'agit d'une table très large, avec beaucoup de champs, lorsque vous allez visiter les champs de droite, ceux de gauche disparaissent !

C'est à dire que vous ne pouvez pas voir à la fois NomClient et Remarque (sauf si vous rétrécissez exagérément les colonnes).

Il est possible de figer les colonnes de gauche : elles resteront affichées, même si on se déplace trop à droite.

Faites ceci :

  1. Sélectionnez les 3 premières colonnes de gauche :
  2. Allez dans le menu Accueil/Groupe : Enregistrement /Bouton Plus : Figer les champs :

Et voilà !

Maintenant, lorsque vous vous déplacez à droite de la table, vos 3 premières colonnes seront toujours apparentes (figées) !

Si, à la place des 3 premières colonnes, vous aviez juste sélectionné NomClient, pour le figer, cette colonne se serait bien figée, mais elle se serait déplacée tout à gauche, et lorsque vous l'auriez libérée par la suite, elle reste tout à gauche, et ne reprend pas naturellement sa place en 3ème position, ce qui fait que les colonnes n'ont plus la même disposition en mode création et en mode saisie de données, ce qui est un peu perturbant.

Je vous en avais déjà parlé lorsque nous avons éviqué le déplacement des champs en mode saisie de données.

 

 

Pour arrêter de bloquer ces 3 premières colonnes :

 

 

 

Libérez les colonnes si ce n'est déjà fait.

Masquage des colonnes

Certains champs sont plus importants que d'autres, et il est possible d'en masquer certains, afin d'avoir une vision plus "synthétique" de votre table.

Par exemple, nous ne désirons pas visualiser les colonnes Decede et AnneeDeces :

  1. Sélectionnez-les :

Et voilà : Les champs sont masqués, mais pas supprimés, évidemment :

 

Vous aurez sans doute deviné que pour les faire réapparaître, c'est :

 

Cette boîte de dialogue permet de faire apparaître et disparaître n'importe quels champs : A l'instant même ou vous cochez ou décochez une case, votre table se met à jour derrière la boîte de dialogue.

 

Recochez les deux coches dans Decede et AnneeDeces.

Tris

A droite de chaque en-tête de colonne, il y a une petite flèche. Cliquez sur celle de NomClient  :

Choisissez Trier de A à Z :

Pas de surprise :

les clients sont triés par NomClient.

Bien entendu, les autres champs ont suivi ! Ils ne se sont pas mélangés : Allen est toujours prénommé Woody, Anderson > Pamela, etc. ça paraît évident mais dans Excel, il est possible de trier une colonne, et que les autres colonnes ne suivent pas ! C'est pour ça que je vous dit ça.

Filtres simples

Il est possible de filtrer les enregistrements, de n'afficher qu'une partie de la table.

Sélectionnez les hommes :

  1. Cliquez sur Politesse
  2. Décochez la coche Sélectionner tout (ça enlève toutes les coches)
  3. Cochez Monsieur
  4. Cliquez sur OK

 

Voilà, il n'y a plus que les Monsieur.

Il semble qu'il y ait 80 hommes (Je dis "Il semble", car ce n'est pas parfaitement exact, nous le verrons)

On voit que la colonne-champ Politesse est filtrée par l'apparition d'un petit entonnoir :

Suppression de filtre

On se rend aussi compte du filtre dans la table par l'apparition d'un bouton en bas de votre écran :

Cliquez sur ce bouton :

 

  • Le bouton devient
  • les 100 enregistrements sont revenus
  • Le petit entonnoir de Politesse a disparu

Cliquez sur , et hop ! Access vous re-filtre les 80 Monsieur :

Je vous ai dit que ça ne filtre pas exactement tous les hommes :

  1. Enlevez le filtre
  2. Triez par ordre alphabétique de Politesse (Vous savez faire, maintenant )

Ce tri nous permet de mieux voir les Monsieur, Madame, Mademoiselle. On constate tout de suite que le premier enregistrement (Jacques Chirac) est M. au lieu de Monsieur (Sans doute une faute de frappe, peu importe : c'est une erreur, c'est tout ce qui nous importe).

     

  1. Remplacez ce M. Par Monsieur
  2. Cliquez sur pour qu'il se remette à
  3. Constatez qu'il y a bien maintenant 81 clients.

L'ordre des clients a changé (ce n'est plus Chirac en tête, mais peu importe puisque nous pouvons trier comme on veut).

Enlevez le filtre, et triez par ordre alphabétique de la Politesse (si ce n'est pas déjà fait).

Erreurs de saisie

Il y a 3 Mademoiselle au milieu de tout le monde. L'usage actuel veut que le titre Mademoiselle disparaisse au profit de Madame(Ce qui me semble logique... Dit-on Mondemoiseau pour un homme célibataire ?)

Ah ! Je vois par hasard que, juste au dessus de Martina Hingis, se glisse une certaine Madame Pierre Palmade... C'est une erreur de saisie, une erreur humaine.

Elles sont parfois très difficiles à débusquer. Je vous laisse remplacer par Monsieur.

Remplacement automatique

Revenons à nos Mademoiselle : Il serait facile de choisir Madame pour ces 3 personnes, mais si nous en avions 250, ce serait plus simple d'automatiser :

  1. Sélectionnez la colonne Politesse en cliquant simplement sur Politesse : . Nous sélectionnons cette colonne en bleu pour remplacer Mademoiselle en Madame, mais seulement dans cette colonne (On ne sait jamais, il pourrait y avoir le mot Mademoiselle dans un autre champ - Dans les remarques par exemple ?)
  2. Raccourci-clavier pour obtenir cette boîte de dialogue . CTRL - H
  3. Allez dans le ruban Accueil / Rechercher / Remplacer :
  4. Vous recherchez Mademoiselle, remplacer par Madame
    Important : choisissez : Regardez dans le champ actuel ! Je vous ai fait sélectionner la colonne entière, mais vous auriez pu simplement cliquer dans une des Mademoiselle, ç'aurait été pareil.
    Cliquez sur Remplacer Tout.
  5. Vous ne pourrez pas dire que vous ne saviez pas :

Et voilà :

Tri sur plusieurs champs

Multi-tri : triez les politesses de A à Z. Vous avez une minuscule petite flèche qui permet de montrer quel champ est trié.

Bien. Maintenant, triez par Prenom : la table est maintenant triée par Prenom, et absolument plus par Politesse, et pourtant, la petite flèche s'incruste dans les deux en-têtes de colonne ! Et ça reste même si vous fermez la table et la rouvrez.

En fait, Access trie les colonnes sans oublier le précédent tri.

Pour mieux comprendre :

  1. Triez par NomClient
  2. Ensuite, triez par PaysOrigine
  3. Et enfin, triez par Domaine

La table est bien triée par Domaine (puisque c'est le dernier tri qu'on vient de demander). Dans l'image de gauche, je montre le haut de la table triée : d'abord des Domaine vides, puis les Chanson, et ensuite il y aura les Cinéma, etc.

Mais regardons attentivement le champ PaysOrigine (Le champ précédemment trié) : il est "sous-trié" : Regardez les PaysOrigine des domaines vides : Allemagne, Autriche, Maroc, maroc, Switzerland : C'est trié !

Et quand on arrive dans les Chanson : Il recommence la liste alphabétique des PaysOrigine : Algérie, Belgique, etc.

Et donc, maintenant, pour tous les enregistrements qui ont à la fois le même Domaine et le même PaysOrigine (Prenons comme exemple Chanson - Etats-Unis), les NomClient sont triés par ordre alphabétique : Dylan, Jackson, Morisson et Presley), puis ensuite, pour les Chanson - France, il recommence le tri des noms : Birkin, Brassens, Cabrel, etc.

Finaud, non ? On appelle ça des Multi-clés de tri.

Bien.

 

Triez par Prenom. Constatez deux clients sans prénom : Coluche et Fernandel... Dans une liste de clients "normaux", ce serait évidemment assez anormal ! ... Mais ici, nous sommes chez les célébrités...

Groupement par tri

Jetons un oeil sur les domaines d'activité (Domaine). Triez-les de A à Z. Oui, il était précédemment trié, mais malgré le fait que soit affiché en orange, recliquez dessus pour lui réimposer le tri prioritaire sur cette colonne. Il existe des clients dont Domaine est laissé vide, et d'autres qui sont : Non-Spécifié.

Il me semble pertinent de remplacer les vides avec Non-Spécifié.

Comme on ne peut pas remplacer automatiquement "champ vide" par Non-Spécifié, nous allons le faire à la main : Cliquez sur Non-Spécifié de Schwartzenegger, puis descendez d'une case avec la touche, et, une fois que vous êtes sur le Domaine de Gad Elmaleh, utilisez le fameux CTRL-Apostrophe : vous vous rappelez ce bien vieux souvenir de la leçon 3 ?

Remplissez ainsi l'un après l'autre : Debbouze, Porchet et Freud avec Non-Spécifié.

Et s'il y en avait 3'000 à remplacer ainsi ? On aurait vite une tendinite au doigt ! ... Il existe une alternative : les requêtes de type mise à jour, que nous étudierons bien plus tard.

Dilemmes de saisie

Il y a plusieurs raisons pour lesquelles un domaine est Non-spécifié.

Pour Schwartzenegger, on hésite simplement entre Cinéma et Poltique.

Elmaleh, Debbouze et Porchet sont des humoristes, mais cette rubrique n'est pas proposée dans la liste... Ce serait peut-être pertinent de l'ajouter ? (ne le faites pas), et Freud était Psychanalyste (on  ne va pas créer une rubrique juste pour lui !)

Je vous précise tous ces détails parce que vous serez parfois confrontés aux mêmes dilemmes : faut-il corriger ? Ajouter une rubrique ? Supprimer ?

Ce sont des questions qui peuvent parfois devenir un sacré casse-tête ! ... Mais si les bases de données étaient si faciles à réaliser, pourquoi prendrait-on des cours ?

Retriez de A à Z les Domaine, pour que les Domaine soient "groupés" : nous traquerons plus facilement d'éventuelles erreurs :

>Amy WhineHouse était une chanteuse, certes mais surtout dans le domaine de la chanson !

Tiens, aviez-vous remarqué que Charlie Chaplin fait du Cinema et pas du Cinéma ?

Liste déroulante et choix proposé dans les filtres

Observez cette subtile différence : Domaine est une liste déroulante locale (vous vous rappelez ?). Comme vous le savez, les données de la table ne respectent pas forcément le contenu proposé dans la liste.

C'est d'ailleurs notre cas : Chanteuse et Cinema ne sont pas proposés.

Par contre, la liste affichée lorsque vous cliquez sur l'en-tête de colonne Domaine, en mode saisie de données,
montre la réalité des données de la table : Chanteuse et Cinema.

 

Corrigez ces deux erreurs. Du coup, le filtre d'en-tête de colonne est maintenant identique au contenu de la liste déroulante :

Passons rapidement sur PaysOrigine, car il est lié à T_Pays, et c'est un peu particulier. Nous y reviendrons dans la prochaine leçon.

Regardez les données de EtatCivil. Y a-t-il des erreurs ? Oui, et on le voit aisément en regardant le filtre d'entête de colonne.

 

L'exercice consiste à chercher les Célibatère et Celibataire pour les transformer en Célibataire.

 

Filtres et tris des cases à cocher

passons aux deux champs suivants : Decede et AnneeDeces.

Demandez à voir uniquement les clients décédés (Case à cocher active) :
Vous devez sélectionner -1 :

Vous vous rappelez, dans le leçon 8, lorsque je vous ai parlé du stockage interne des cases à cocher ?

Eh bien voilà une application !

Retirez le filtre et triez Decede en positionnant les clients décédés en premier.

Comme il s'agit d'une case à cocher, les options de tris s'affichent ainsi :

L'option affichera donc les cases cochées en premier (de Activée (-1) à désactivée (0), logique !).

Il est possible également de cliquer avec le bouton droit de votre souris sur n'importe quel champ et de choisir le tri alphabétique.

Mais, nous avons souvent une tendance naturelle à d'abord cliquer avec le bouton gauche, et ensuite, avec le bouton droit.

En général, ça ne dérange pas, mais dans le cas de la colonne des cases à cocher, le fait de cliquer par réflexe avec le bouton gauche, et boum ! la case est cochée ! Et dans notre cas, vous avez vite fait de tuer quelqu'un !

Maintenant que vous avez les cases cochées en haut de la table, comparons avec la colonne suivante : AnneeDeces.

A la limite, on pourrait se dire que si AnneeDeces contient un chiffre, c'est que le client est décédé !

On peut même se demander s'il est utile de conserver des clients décédés !!! ... Boh, Disons que si vous êtes notaire ou avocat (Ou entrepreneur de pompes funèbres ... Oulà ! Il est noir, mon humour, aujourd'hui), ce peut être fort utile.

Dans notre cas, nous ne connaissons pas toujours l'année de décès : nous cochons juste une case ! ...

Remarquez qu'on aurait simplement pu écrire un chiffre comme "1" par exemple dans AnneeDeces, ce qui voudrait dire que le client est décédé, mais on ne sait pas quand.

Voyez comme il faut réfléchir ? ... Toujours de façon globale

Il n'y a pas toujours qu'une seule solution, et c'est parfois bien profitable de remettre les choses en question.

Par contre, maintenant, demandez le tri descendant (du plus grand au plus petit) des AnneeDeces :
afin d'avoir les AnneeDeces non-vides en premier.

Incohérence des données

Là, nous constatons une grosse incohérence !

S'il est logique d'avoir une case cochée sans date, il n'est pas du tout logique d'avoir une date sans que la case soit cochée ! Il s'agit d'une erreur humaine de saisie :

Vous allez donc cocher manuellement les cases Decede de PresleyLee et Piaf.

Pour se prémunir de ce genre d'erreur, nous ne pouvons rien faire sans utiliser les macros de table, mais ceci déborde largement du cadre de cette leçon.

Rappelez-vous que l'AnneeDeces contient juste une année. Pas question d'y inscrire une date précise, même si on la connait !

 

Regardez maintenant les SalaireMensuel :

On peut déjà se demander s'îl est bien normal d'attribuer un SalaireMensuel a une personne décédée ! ...

Mais bon... Admettons qu'il s'agit du dernier salaire reçu de son vivant, ou à titre posthume. Ne les effaçons pas, "on ne sait jamais", comme dirait l'autre !

Une autre question est : "Y a-t-il un intérêt à connaître les salaires des clients ?" ... Oui, si ce sont les clients d'une banque qui leur a consenti un gros prêt.

Certains SalaireMensuel sont à 0.00, et d'autres sont simplement vides. Qu'est ce que ça veut dire ?

Allez savoir !

Si cette table vous a été léguée par quelqu'un qui, lui-même, l'a fait remplir par une stagiaire, il y a de nombreuses années, dont nous n'avons plus la moindre trace, ça va être difficile de trancher !

Dans le doute, en attendant d'en savoir plus, laissez-les choses telles quelles !

Si vous allez en Mode création, vous constaterez que ce champ a la Valeur par défaut 0. Ainsi, les nouveaux clients se verront attribuer 0 comme SalaireMensuel, si on le le modifie pas.

Vérification des valeurs extrêmes

L'intérêt de trier cette colonne du plus grand au plus petit est de vérifier qu'il n'y ait pas de salaire en dessous de 0, ni de salaire fantaisiste tant le chiffre est gros. Triez et regardez. Le plus gros salaire est attribué à Céline Dion (12'450.00) (Oui, je sais, c'est plutôt ce qu'elle gagne par jour, mais bon...), et le plus bas : Raymonde Bidochon (994.35). ça paraît correct. ça ne nous dit pas si les données sont correctes, en tout cas, elles semblent cohérentes.

Totaux

Si cette table avait été une table des collaborateurs d'une société, il pourrait être sympathique de connaître la somme totale des salaires (ou leur moyenne, pourquoi pas ?)

  1. Faites en sorte de voir le bas de la table à l'écran :
  2. Allez dans le menu Accueil,  et cliquez sur Totaux :
  3. Constatez une nouvelle ligne en bas de votre table :
  4. Cliquez dans le total de SalaireMensuel, et choisissez Somme :

Et voilà : la somme des SalaireMensuel : 424'467.25 : .

Moyenne, minimum, maximum

Vous aurez compris qu'à la place de Somme, on peut choisir La moyenne, la maximum, le minimum, ... (On ne peut pas en avoir plusieurs sur un seul champ : on ne peut pas voir à la fois la somme et la moyenne des SalaireMensuel par exemple.

Bien entendu, si vous filtrez la table, la somme se met à jour instantanément.

  1. Je filtre ma table en ne montrant que les Domaine = Cinéma.
  2. Je sélectionne ensuite la moyenne de leurs SalaireMensuel : 4'181.10.

Essayez ! Vous arrivez au même total ?

Les totaux des champs texte n'offrent qu'une option : Nombre (Comptage). Demandez le comptage des NomClient :

Il y en a 33 (dont le domaine est Cinéma, donc, puisque c'est le filtre que j'ai demandé)

La fonction Nombre compte les champs remplis ! En l'occurrence, tous les noms sont remplis, il n'y a donc pas d'ambiguïté, mais essayez de compter AnneeDeces, et vous obtenez .. 7 !

En bas à gauche, vous avez normalement le véritable nombre d'enregistrement, mais il a remplacé par le mot Totaux :

Mais il suffit de cliquer sur n'importe quel enregistrement pour que tout rentre dans l'ordre : Vous y verrez bien le nombre total d'enregistrements, et le nombre de clients donc l'AnneeDeces est connue !

 

Erreurs de saisie fréquentes dans les dates

Passons à DateNaissance. Triez de la plus ancienne à la plus récente : .

Nous ignorons la date de naissance de nos 4 premiers clients, pas de souci.

Par contre, Sharon Stone n'est pas si vieille ! ... Changez 958 et 1958.

Sigmund Freud, par contre, c'est ancien mais correct.

Paméla Anderson est née en 1967, et pas 2967 !

Corrigez aussi !

Ici, c'est l'inverse de AnneeDeces : c'est une Date ! Ainsi, si vous connaissez l'AnneeNaissance du client, mais pas sa date exacte, vous ne pouvez rien écrire ! Oui, je sais, c'est une limitation ... Inscrivez plutôt alors l'année de naissance pour info, dans la Remarque.

Ou alors...

Précisez qu'il est né le premier janvier de l'année en question, mais c'est une mauvaise idée, parce que si vous décidez d'envoyer des cartes de voeux pour leur anniversaire, ils vont la recevoir le premier janvier de chaque année !

C'est nul !

Tris et filtres des listes déroulantes à multi-choix

La CouleurPreferee, vous ne pouvez carrément pas la trier : c'est en grisé :

En fait c'est normal : c'est une liste déroulante avec plusieurs choix possibles (Vous vous rappelez, dans la leçon 13 ?)

En effet, quel intérêt de trier alphabétiquement ?

Regardez par-vous même : comme les couleurs sont séparées par des points virgules ; , il trierait seulement par la première couleur choisie, ça vous induirait en erreur !

Par contre, vous pouvez les filtrer : Retirez toutes les coches, et cochez juste Noir.

Lorsque vous cliquez sur OK,
vous obtenez tous les clients qui aiment le noir (entre autres)

Enlevez le filtre :

Normalisation de la saisie

Passons à l'Adresse.

Le tri alphabétique nous indique que tout le monde a une adresse (pas de vides), ce qui est un bon point ! - Maintenant, sont-elles à jour, sont-elles correctes, ça, c'est un autre problème !!!

Les premières Adresse sont affichées avec le numéro de rue à gauche(les chiffres sont classés avant les lettres dans les champs texte, vous vous souvenez ?)

Ce n'est pas grave du tout !

... Mais tant qu'à faire, corrigez ces 6 premières lignes, et écrivez le N° de rue à la fin de l'adresse plutôt qu'au début : par exemple :

Pour éviter cette petite confusion, on aurait pu placer le N° de rue dans un champ à part. On aurait pu... Mais bon, quand aura-t-on besoin du numéro de rue qui ne sont pas accolé à l'adresse ?

Retriez à nouveau le champ Adresse par ordre alphabétique.

Problèmes inhérents a la ponctuation

Dans des adresses, il y a souvent des traits-d'unions entre les différents mots, mais pas toujours !

Dans cet extrait, il y a deux traits d'union à Pont-de-Ville, mais pas à Pont Céard ! Du coup, lorsque vous allez rechercher Pont-Céard, Pont de-Ville, Pont-de Ville ou Pont de Ville, vous ne les trouverez pas !

C'est agaçant !

Et je ne parle pas des àccênts ! Ni des a'postrophes !

Combien  de fois n'ai-je pas pesté contre mon GPS lorsque j'essaie de saisir une adresse !

Du coup, je vous propose de bannir au moins les traits-d'union, et tant pis pour les conventions ! Comme il s'agit d'une opération massive, et qu'on est jamais à l'abri d'une erreur, faites-donc une copie de sécurité de votre table avant d'aller plus loin ! Vous vous rappelez comment on fait ?

Remplacement de données en masse

  1. Cliquez sur une adresse quelconque
  2. Appuyez sur (Ou dans le ruban Accueil/rechercher/Remplacer, comme tout à l'heure)
  3. Vérifiez bien à l'écran que le résultat vous convient, et, si oui, cliquez sur Oui :
    Sinon... Vous aurez toujours votre table de secours que nous avons créé juste avant, au cas où...

Maintenant, constatons que avenue est parfois écrit av. et parfois avenue.

Pourquoi ne pas normaliser les choses ? Je vous propose de remplacer les avenue en av. (on aurait pu faire l'inverse, mais av. est moins large, et comme on sera peut être parfois appelés a faire des étiquettes avec les adresses, on évite ainsi le risque d'adresses trop longues)

A nouveau, je vous recommande de créer une copie de sécurité de la table, avant de continuer.

Et allons-y, même procédé !

Attention à choisir Début de champ, car nous voulons qu'il recherche seulement les avenue au début du champ. Il y a vraiment peu de probabilité qu'un client habite "rue de l'avenue 66" par exemple, mais on ne sait jamais !

Prenons de bonnes habitudes !

Bien !

Passons aux boulevards : . Le plus rapide est de les modifier à la main : (J'ai mis un point à av. et pas de point a bd, parce que bd, c'est la première et la dernière lettre de boulevard, mais je ne sais pas si c'est juste, peu importe)

Normalisez vous même les autres noms :

  • Transformez les chemin en ch.
    Et là, regardez le dernier enregistrement : Vieux Chemin de Bernex 299. Nous ne voulons pas le transformer en ch., celui-là, d'où l'importance de bien sélectionner Début de champ dans la boîte de dialogue Remplacer
  • Transformez les place en pl.
  • Transformez q.vernets 248 en quai des Vernets 248
  • Transformez les route en rte
  • Par contre, transformez les r. en rue (vu que c'est un mot court)

Ces transformations ne sont pas cruciales !

C'est simplement plus facile à lire, et ça nous permet, le cas échéant, de filtrer facilement les gens qui habitent le long d'une route ou dans un chemin.

Filtres de texte

Essayez :

pour Adresse, choisissez Filtres de texte/Commence par.

Ecrivez av, et OK.

Voilà : tous les gens qui habitent dans des avenues :

Vous pouvez visualiser le filtre en re-cliquant sur le petit entonnoir de l'Adresse : vous avez un petit à côté de Filtre de texte, ainsi que à côté de Commence par :

(Si vous recliquez sur Commence par, il va vous réafficher av)

Maintenant, admettons que vous désirez toutes les Adresse qui se terminent par 4 :

Vous obtenez tous les clients qui habitent dans une avenue

et

dont le numéro de maison se termine par 4 :

 

Très bizarrement, lorsque vous recliquez encore sur le petit entonnoir, les petits ont disparu, alors qu'il y a justement deux filtres empilés

 

Un bug , sans doute ?

Application de filtres à l'ouverture de la table

Maintenant, fermez T_Client. Il vous demande

Tiens ? Le fait d'appliquer un filtre change la structure de la table ? ... Répondez Oui. Donc, lorsqu'on rouvre la table, on ne devrait voir que les enregistrements filtrés, du coup ?.

Rouvrez-là. Eh non ! Toute la table est bien là.

Allez en mode création. Demandez à voir les propriétés de la table :

C'est la première fois que nous regardons ces propriétés.

Parmi celles-ci, 4 nous intéressent :

Regardez la syntaxe de filtre :

((T_Client.Adresse Like "*4")) And (T_Client.Adresse Like "av*")

Je ne sais pas pourquoi il y a 2 parenthèses qui se suivent ici, au début et à la fin :

((T_Client.Adresse Like "*4")). Je pense que c'est un bug ...

C'est du langage SQL. Je ne vais pas trop entrer dans les détails avec ce langage maintenant, mais vous pouvez assez facilement comprendre que le filtre demande toutes les adresses qui se terminent par 4 : *4 et qui commencent par av (av*).

Vous aurez sans doute compris que l'étoile signifie "N'importe quel texte du moment que les deux premières lettres sont av".

C'est donc cette instruction SQL qu'Access vous a proposé d'enregistrer, avec son message :

Cette option est définie à Non par défaut, parce que si vous démarrez tout de suite avec une table filtrée, vous pourriez croire qu'elle est incomplète si on n'est pas très attentif !

Mieux vaut passer par des requêtes (que nous verrons plus tard) si vous désirez un filtre permanent.

Ce qui nous intéresse, c'est Filtrer sur chargement : Non.

Changez cette propriété à oui : .

Lancez la table en mode saisie de données, et voilà !

Le filtre est automatiquement appliqué ! Vous ne voyez immédiatement que les gens qui habitent dans des avenues dont le numéro se termine par 4.

Tri automatique dès l'ouverture de la table

Pour effacer tous les tris d'un coup, vous pouvez bien entendu effacer la ligne de commande SQL en mode création, mais vous pouvez aussi aller en mode saisie de données, dans le menu Accueil :

Attention : ça ne supprime pas juste le tri de la colonne sur laquelle vous êtes, mais tous les tris de la table !

Concernant le tri, le principe est exactement le même.

Comme nous l'avons vu plus haut, nous avons effectué un tri multi-champ complexe, et ce tri apparaît sous la forme :

[T_Client].[Ville], [T_Client].[CodePostal], 
[T_Client].[Adresse], [T_Client].[Decede], 
[T_Client].[DateNaissance], 
[T_Client].[SalaireMensuel] DESC, 
[T_Client].[AnneeDeces] DESC, 
[T_Client].[EtatCivil]

Les différentes clés de tri successives sont séparées par des virgules, et on peut aussi demander que ce tri soit effectué dès l'ouverture de la table par Tri par sur chargement.

En l'occurrence, il trie par Ville, puis par CodePostal, puis par Adresse, Puis par Decede, puis par DateNaissance, puis par SalaireMensuel inversé (DESC), etc.

Ce qui pourrait être intéressant, c'est que T_Client s'ouvre automatiquement sans filtre, mais avec un simple tri sur le NomClient. Faites-le.

Lancez ensuite la table en mode Saisie de Données, et demandez un tri par NomClient.

Revenez ensuite en mode création :

  • demandez le tri juste sur NomClient (effacez le reste)
  • Tri par sur chargement : Oui
  • Filtrer sur chargement : Non

Si vous voulez faire apparaître les enregitrements dans l'ordre que vous les avez saisis, vous devez créer un champ de type NuméroAuto, et trier par ce champ.

Vous vous rappelez ? Quand on a parlé de clés primaires à la leçon 15 ?

Et voilà !

Votre table s'affiche automatiquement par
ordre alphabétique des NomClient !

Vous avez défini la propriété de table Tri par chargement : Oui. Ainsi, quel que soit le tri que vous appliquez par la suite dans votre table, il sera mémorisé, et la table apparaîtra spontanément avec le nouveau tri demandé

(pour autant que vous répondiez chaque fois oui à la question ).

Même commentaire pour les filtres !

Filtres disponibles selon le type de données

Jetons encore un oeil sur les filtres possibles. Lancez la table en mode saisie de données.

Selon le type de données, les filtres disponibles seront différents :

Type de données Aspect du filtre

Texte, mémo, liste déroulante

(A part les listes multi-choix)

Numérique, monétaire

Case à cocher Oui/non

Ici, il n'y a carrément pas de filtre possible, mais le tri et le choix de -1 ou 0 suffisent, en fait  :

 

Date/Heure

Wouaw ! Que d'options ! dans notre cas, nous avons juste DateNaissance comme champ de type Date/heure, et toutes ces options nous semblent surdimensionnées.

Mais dans le cas de tables de ventes d'objets, ou de prestations quelconques, cette pléiade d'option est fort, fort utile !

La dernière option de filtre (Toutes les dates de la période) permet de filtrer toutes les dates sans tenir compte de l'année.

Essayez :

filtrez DateNaissance par Toutes les dates dans la période - Avril : et vous verrez tous les clients nés en avril  de n'importe quelle année.

 

Filtre contextuel

 

Si vous utilisez le bouton droit de votre souris sur une donnée (par exemple, ici, je clique avec le bouton droit sur un salaire de 9'450 francs).

 

 

 

 

J'obtiens, en sus des filtres normaux, la possibilité de filtrer mon champ en rapport avec ce que j'ai sélectionné, comme ceci :

Limites des filtres automatiques

On ne peut pas tout faire avec ces filtres automatiques .

 

Par exemple, imaginons que vous vouliez filtrer tous les NomClient qui commencent par A ou par B.

Une lubie ! Comme ça !

  1. Demandez à filtrer tous les NomClient qui commencent par a :
  2. Voilà :
  3. Re-cliquez dans le petit entonnoir de NomClient: il a coché tous les clients qui commencent par A :

C'est sympathique : ça permet de rajouter ou d'enlever à la main tel ou tel client ! On pourrait ainsi rajouter les clients qui commencent par B en les cochant ainsi l'un après l'autre.

Incohérences de filtres

Mais nous allons essayer de faire ça plus rationnellement !

  1. Demandez à nouveau à filtrer tous les NomClient qui commencent par b, cette fois :

Oh oh ! ...

La table est vide ! .

Ce qui s'est passé :

  • Access a d'abord filtré tous les NomClient qui commencent par A.
  • Ensuite, vous avez ajouté un nouveau filtre : tous les clients qui commencent par B : du coup, il essaie de filtrer tous les NomClient qui commencent par A et qui commencent par B.

Evidemment, il ne peut y avoir personne dont le nom commence à la fois par A et par B !

Supprimez le filtre de NomClient :

Peut-être pouvons nous écrire a ou b ?

Eh non !

Il affiche seulement les NomClient
qui commencent par B :

Bizarre, non ?

Personnalisation des filtres en SQL dans la table

Mais revenez en mode création, et regardez dans les propriétés de la table, le filtre :

Même sans bien connaître le SQL, on voit bien qu'il y a un bug !

Pourquoi [NomClient]="a" au début , et à la fin [NomClient] Like "b*" ?

Modifiez l'instruction comme suit :

([T_Client].[NomClient] Like "a*" Or [T_Client].[NomClient] Like "b*")

Vérifiez que Filtrer sur chargement soit bien défini à Oui, et lancez la table en mode saisie de données. Ca joue, cette fois !

Like "a*" veut bien dire "Tout ce qui commence par a" . Tandis que ="a" veut juste dire a ! (En fait tous les NomClient qui s'appellent a... Mais y'a bien peu de chance pour qu'un nom de famille se résume à la lettre "a" !

Ca me rappelle "Le dîner de cons" : Il s'appelle "Juste Leblanc"... "Ah bon ? il n'a pas de prénom ?"

Suppression d'un filtre à la fois

Il est possible de filtrer sur plusieurs champs. Filtrez comme ceci :

  1. Les NomClient qui contiennent la lettre R
  2. Les Prenom qui contiennent la lettre P

Si vous désirez supprimer un seul des deux filtres (par exemple, celui du NomClient, il vous suffit de cliquer sur l'entonnoir de NomClient. (Ca fera disparaître l'entonnoir)

 

Et si vous voulez supprimer l'ensemble de tous les filtres, cliquez sur le bouton .

Bien.

Supprimez tous les filtres éventuels. Où en étions-nous avec notre ménage ? ... Au CodePostal.

Triez les CodePostal du plus petit au plus grand.

Les premiers sont vides (la Ville est simplement inconnue), mais il y a aussi deux clients dont la ville est connue, mais pas le CodePostal !

Si on regarde plus bas, on voit d'autres Genève, avec le CodePostal connu. Il n'y a qu'à le recopier ! Non non ! Pas si vite ! Si vous regardez attentivement, il y a plusieurs Genève, avec plusieurs CodePostal différents !

Eh oui ! En Suisse, c'est possible ! Ne tirez donc jamais de conclusions trop hâtives avant de modifier les contenus de vos champs !!!

Triez par ordre alphabétique de la Ville.

Salade de langues

Genève peut s'écrire de différentes façons : Genf (En allemand), Geneva (en anglais), etc. Ce serait bien de n'avoir que des Genève en français.

Corrigez donc ces quelques erreurs : cherchez le Geneva et le Genf, et remplacez-les par Genève.

Problèmes d'orthographes presqu'identiques

Regardez si par hasard il n'y aurait pas des Ville écrites presque de la même manière. Par exemple, il y a :

Remplacez tous les traits d'union du champ Ville par un espace .

Le CodePostal est le même : pas de doute, c'est la même Ville. Alors ? On l'écrit avec ou sans trait d'union ? ... Je vous propose la même philosophie que les noms de rue : banissons les traits d'union !

Il y aura toujours bien quelqu'un qui va vous faire la remarque, comme quoi les noms de Ville contiennent des traits d'union, c'est dans le bon usage.

De plus, au fur et à mesure de la saisie des données, rien ne prouve que les différentes personnes qui saisissent les données vont respecter le fait de ne pas saisir de traits d'union... Ne soyez pas trop psychorigide ! Restez cool ! Un trait d'union n'a jamais tué personne !

Si vous êtes trop à cheval sur vos conventions, vous risquez de passer pour un de ces informaticiens toujours de mauvaise humeur parce que les utilisateurs font n'importe quoi pour les emmnuyer !

Le CodePostal et la Ville sont étroitement liés !

Rien ne prouve que tous les CodePostal de nos clients sont bien associés à la Ville correspondante !

Qui vous prouve que 1258 est bien le CodePostal de Perly, par exemple ? ... Bon, on ne va pas passer notre journée à vérifier ça. Trop long !

- Nous verrons à la leçon suivante comment gérer cet état de fait -

Demandez le tri alphabétique par Ville. Ah ! Les premiers enregistrements sont vides, et le 3ème contient le CodePostal, mais pas la ville associée !

Si on regarde plus bas, on voit qu'il existe un 1202 Genève. Donc, ça doit être Genève aussi, non ?

Pas forcément ! En Suisse, on peut aussi avoir une seule Ville avec plusieurs CodePostal différents ! Oui, je sais, c'est vicieux ! Par exemple, Carouge et Acacias sont deux Ville pourvue du même CodePostal : 1227

Choix pertinent des noms de champs

En Suisse, nous appelons "Ville", les locatités de plus de 10'000 habitants.

Maintenant que j'y pense, à la place de Ville, préférons le terme Localite, plus pertinent ! Renommez le champ en mode création.

Et puisque nous sommes en mode création, pourquoi le CodePostal est-il défini en Texte ? Les CodePostal de Suisse sont systématiquement des nombres en dessous de 10'000 ! ...

Tout dépend si nos clients peuvent résider à l'étranger ! ... Par exemple, les CodePostal de Grande-Bretagne sont composés de lettres et de chiffres. Oui, mais alors, il nous manque le champ PaysHabitation ! ...

Nous allons supposer que tous nos clients habitent en Suisse.

 

Changez ainsi le type de champ de CodePostal en Numérique Entier (Vous vous rappelez ? les entiers permettent les nombres sans décimale de -32768 à 32767, ce qui nous convient très bien dans ce cas).

Lancez la table en mode saisie de données :

Il nous prévient que ça va peut-être effacer des données !

Je vous rappelle qu'avant de faire ce genre d'opération, vous avez vraiment tout intérêt à créer une copie de la table, parce que vous n'aurez pas l'occasion d'annuler, je vous le rappelle ! ... Oui, c'est ennuyeux, parce que si vous essayez de créer une copie maintenant, il vous affublera d'un message d'erreur car la table est ouverte en mode création. Il faudrait donc la fermer sans enregistrer les changements, pour créer une copie, et recommencer à définir CodePostal en Numérique, Entier, mais je vous assure que vous économiserez bien du stress et des crises de nerfs en étant très attentifs à vos données !!!

A vous de voir si vous désirez travailler avec ou sans filet, maintenant ...

Pour compléter la sécurité, précisez que les codes postaux doivent être situés entre 1000 et 9999 (puisque en Suisse les codes postaux sont systématiquement représentés par 4 chiffres), sinon, un message d'erreur Code postal incorrect doit apparaître.

Voilà !

Normalement, ça s'est bien passé. CodePostal est maintenant Numérique entier. ça évitera déjà les erreurs de saisie avec le texte !!! - Style par exemple écrore la lettre O majuscule au lieu du chiffre 0...

Evolution de la base de données

Oui mais alors, si, par la suite, on a vraiment des clients de Grande-Bretagne avec des lettres dans les codes postaux ? On fait quoi ? ... Eh bien on changera à ce moment-là ! ...

Oui, ce ne sera pas facile, oui, ça va perturber l'ensemble de la base de données !

Mais une base de données n'est pas créée pour rester figée ensuite !

Et vous ne pouvez pas prendre en compte tous les cas de figures éventuels ! Parce qu'à ce compte-là, ajoutez un champ LangueMaternelle (On ne sait jamais), taille, pointure de chaussure, couleur de cheveux, ou je ne sais quoi ! Vous ne vous en sortirez jamais ! Essayez d'être souple, et de bien coller à la réalité actuelle !

Qui vivra verra !

Bien. Où en sommes-nous ? Le Canton !

La Suisse est divisée en 26 cantons (L'équivalent des départements français).

Chaque canton est représenté en 2 lettres. Par exemple, Genève, c'est GE. ZH, c'est Zurich, etc.

Triez les Canton par ordre alphabétique. Comme souvent, les premiers enregistrements ne sont pas renseignés. tant pis !

Ensuite, il reste à nous assurer que tous les codes de Canton représentent bien un canton, mais ça, nous le verrons à la leçon suivante, où nous créerons une liste déroulante bien propre.

Rendez-vous en mode création, et réduisez-les en texte de taille 2 caractères (inutile d'en avoir plus - C'est une source d'erreur en moins) :

Il ne nous reste plus qu'à traiter le champ Remarque !

Triez-le par ordre alphabétique. Eh non ! On ne peut pas, c'est un champ Mémo. Vous vous rappelez ?

On pourra le trier dans les requêtes, nous verrons ça plus tard. Ici, nous aurions simplement constaté que plein de clients n'ont pas de Remarque.

Par contre, elle est définie en texte brut. je vous propose de la transformer en Texte enrichi (Vous vous rappelez comment on fait ?).

Positionnez-vous sur la Remarque de Al Pacino, et mettez le mot Corleone en rouge et en gras pour vérifier que ça fonctionne bien.

Correction orthographique

Comme la Remarque est composée de phrases complètes, ce serait judicieux de corriger l'orthographe (comme dans Word).

 

Sélectionnez le champ Remarque, et cliquez sur Orthographe. (Pour info, ma table est toujours triée par Canton)

Il a trouvé l'accent circonflexe ^ manquant sur "rôles".

Cliquez sur Remplacer.

Ensuite, il ne connaît pas "Corleone". C'est un peu normal.

Cliquez sur Ignorer.

Et il continue avec la prochaine faute :

Voilà. Vous avez compris le principe, c'est vraiment comme dans Word.

Si vous ne sélectionnez pas une colonne avant de lancer le correcteur orthographique, Access va corriger tous les champs.

Or, il y a certains champs qui sont vraiment inutiles à corriger. Par exemple, le champ Adresse contient tellement de noms de famille, lieux-dits et autres mots spéciaux, que c'est bien inutile de le laisser continuer à corriger cette colonne !

Dans la session de correction, vous avez la possibilité de cliquer sur Ignorer le champ "Adresse".

Frautes de fappe et correction automatique

En plus de la correction orthographique, il est possible de se prémunir contre certaines erreurs de saisie courante grâce à la correction automatique.

Allez dans le menu Fichier/Options.

... Et si vous cliquez sur Exceptions, vous pouvez même préciser dans certains cas de ne pas traiter ces deux options. Difficile de mieux faire !

Caractères spéciaux (©, €, ...)

La dernière case à cocher, qui n'est pas cochée par défaut : Correction en cours de frappe, est très intéressante !

Si vous cochez cette case, il va automatiquement corriger le texte de la colonne de gauche (Remplacer:) en texte de la colonne de droite (Par:).

Regardez : si vous écrivez ( c ) , Access va vous le remplacer automatiquement par le petit logo CopyRight ©.

Essayez par vous même : testez toutes les options d'un coup dans la Remarque de Fabrice Luchini ! Ecrivez (ou copiez-collez la phrase suivante) :

bONJOUR ! moi, FAbrice, j'aime Microsoft Access (c)

Pensez à écrire un espace après (c) (que vous effacerez aussitôt), sinon, ça ne marche pas.

Il va le transformer en :

Bonjour ! Moi, Fabrice, j'aime Microsoft Access ©

 

Plus bas dans la liste, voyez les différentes fautes de frappe/d'orthographe courantes qui seront alors automatiquement corrigées :

Vous pouvez même sélectionner certaines corrections automatiques que vous désirez supprimer (ne le faites pas dans cet exemple).

Raccourci pour écrire de longs textes

Et pourquoi pas détourner cette fonctionnalité pour gagner du temps ?

Imaginez que vous écrivez souvent Formagiciel International S.A.

On pourrait imaginer que lorsque vous tapez simplement la lettre f (suivie d'un espace, d'un point ou d'une virgule), la raison sociale s'écrit toute seule, en entier.

Marche à suivre

  1. Ecrivez f dans Remplacer :
  2. Ecrivez Formagiciel International S.A. dans Par :
  3. Cliquez sur Ajouter
    Ca l'ajoute dans la liste, comme vous le voyez.
  4. Cliquez sur OK

Les options de corrections automatiques, ainsi que les éventuels mots que vous ajoutez au dictionnaire orthographique, sont liés à votre suite Microsoft Office sur votre PC : Donc, votre Access, votre Word, votre Excel, seront affectés par vos personnalisation.

A contrario,

si vous posez la base de données sur un lecteur de réseau, aucun utilisateur à part vous ne profitera de votre personnalisation (ce n'est pas génial, mais c'est ainsi )

Testez :

Ecrivez simplement f, suivi d'un espace, d'un point ou d'une virgule dans une remarque vide (que vous effacerez aussitôt le test réalisé), et voyez si le remplacement s'effectue correctement.

Recherche globale

Si vous ne désirez ni trier, ni filtrer, mais simplement rechercher une portion de texte dans votre table, utilisez la petite zone de recherche, tout en bas de votre écran :

Par exemple, nous recherchons un client qui s'appelle Michel ou Michael ou Mickaël, mais on ignore même s'il s'agit de son nom ou de son prénom. C'est peut-être même un prénom qui apparait juste dans une Remarque !!!

Une recherche très large, donc.

  1. Triez votre table par ordre alphabétique de NomClient (Afin d'avoir les mêmes résultats que moi)
  2. Cliquez dans cette petite zone Rechercher, et écrivez m :
    il va instantanément sélectionner le premier m du premier champ du premier enregistrement qu'il trouve : le m de Monsieur de Allen :
  3. Ajoutez i pour avoir mi dans la zone de recherche. Il trouve instantanément la première occurence de mi :
  4. Ajoutez maintenant le c pour obtenir mic. Il trouve également les M Majuscules :
  5. Nous n'ajoutons plus de nouvelles lettres. Appuyez simplement sur la touche ENTER pour afficher la prochaine occurrence de mic (ou Mic, ou MIC).
  6. il peut lui arriver de trouver un mic, mais de ne pas l'afficher correctement, comme ceci par exemple  :

  7. Et voilà : vous pouvez ainsi appuyer plusieurs fois de suite sur ENTER pour découvrir tous les mic de la table.

 

Quand il a tout trouvé, il ne recommence pas sa recherche depuis le début :
il faut réécrire mic dans la zone de recherche si vous voulez à nouveau parcourir les mic.

Recherche paramétrée

Cette petite zone de recherche sert pour les recherches "brutes". En présence d'une grosse table (avec des dizaines de milliers d'enregistrements), il peut être judicieux d'effectuer des recherches plus ciblées.

Nous avons utilisé la fonction Remplacer, plus haut dans cette leçon. La fonction Rechercher fonctionne de manière un peu identique (Accueil/Rechercher). Le raccourci clavier est CTRL-F (F = Find - chercher en anglais).

S'il existe un filtre activé, Access ne trouvera jamais rien dans les enregistrements exclus par le filtre. C'est une bonne chose, mais il faut le savoir.

Regarder dans :

Vous avez le choix de chercher :

  • dans le champ dans lequel vous êtes (champ actuel)
  • dans tous les champs de cette table (document actif)

Où :

  • N'importe où dans le champ :

Une recherche de raf trouvera rue François Durafour 69

  • Champ entier :

Une recherche sur Michel trouvera les gens qui se prénomment Michel, mais pas les remarques qui contiennent le mot Michel

  • Début de champ :

Le truc qu'on cherche doit se trouver tout à gauche du champ. Ainsi, une recherche de mic trouvera les Michel, mais une recherche sur chel ne les trouvera pas.


Sens :

En général, on recherche dans toute la table.

Mais si on veut rechercher seulement à partir de là où on se trouve, on choisit Bas, et si on veut rechercher depuis le début de la table jusqu'à où on se trouve, on choisit Haut.


Respecter la casse :

La casse, c'est les MAJUSCULES et les minuscules. Par exemple, une recherche sur michel ne trouvera pas Michel si on coche cette case.

Cherchez et trouvez Michael Corleone.

Vous constaterez que le fait d'avoir mis Corelone en rouge (Vous vous rappelez ?) n'empêche pas de le trouver.

Dans cette grande leçon, nous avons appris à figer les colonnes sur la gauche, mais également à en masquer certaines, pour une meilleure visibilité.

Nous avons appris à trier et filtrer sur un ou plusieurs champs à la fois, voire même sur les listes déroulantes à multi-choix. Nous avons vu comment faire s'appliquer ces filtres dès l'ouverture de la table grâce à certaines propriétés de la table.

Nous avons remplacé automatiquement en masse certaines données erronnées, et nous avons étudié les différentes erreurs de saisie possible, que ce soit dans les textes, les dates ou même les cases à cocher.

Nous avons vérifié la crédibilité des valeurs extrêmes (SalaireMensuel et DateNaissance) dans certains champs, et nous avons débusqué certaines incohérences (la case à cocher Decede et AnneeDeces).

Nous avons appliqué des totaux à certaines colonnes filtrées ou pas (Somme, Nombre, ...).

Nous avons vu que la ponctuation pouvait gêner les recherches (traits-d'union notamment).

Nous avons étudié différents filtres pour les textes, mais aussi pour les dates, ainsi que leurs limites (les noms qui commencent par A ou B).

Nous avons vu un petit peu de SQL dans ces filtres.

Nous avons également abordé la correction orthographique et la correction automatique des frautes de fappe courantes, et nous avons conclu par les deux fonctions de recherches (CTRL-F et la zone Rechercher).

Exercice

L'exercice consiste à télécharger cette base de données : ExerciceLecon017.accdb.

Elle contient une table T_Film.

Votre exercice consiste à la nettoyer complètement, avec la même philosophie que cette leçon.

Soyez attentif, soigneux !

  • Triez, Filtrez, cherchez, observez
  • Traquez les incohérences, les erreurs
  • Optimisez
  • Créez d'éventuelles listes déroulantes
  • Optimisez les types de données
  • Contrôlez les noms de champs
  • Remettez en question certains champs
  • etc. 

BREF : faites-lui un soin complet de chez complet ! Pour vous donner une idée du travail, il y a une quarantaine de modifications-observations à faire.

Lorsque vous pensez avoir terminé, cliquez ici pour voir ma solution.

Quizz
1. Il est possible de figer les premières colonnes et les premières lignes
Oui
Non. On ne peut figer que les premières lignes
Non. On ne peut figer que les premières colonnes
Non. On ne peut figer qu'une seule colonne

Warning: Undefined variable $Q1 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1304

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1304

Warning: Undefined variable $Q1 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1305

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1305
2. il est possible de masquer certaines colonnes
Oui, sans problème
Oui, mais il y a un risque d'effacement des données qu'elles contiennent
Non

Warning: Undefined variable $Q2 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1325

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1325

Warning: Undefined variable $Q2 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1326

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1326
3. Que désigne le bouton tout en bas de la table ?
Ca veut dire qu'une seule colonne est filtrée
Ca veut dire qu'au moins une colonne est filtrée
Ca veut dire qu'aucun filtre n'est actif, et qu'il faut cliquer sur le bouton pour les activer

Warning: Undefined variable $Q3 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1347

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1347

Warning: Undefined variable $Q3 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1348

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1348
4. Dans la boîte de dialogue Remplacer, il est possible de remplacer un texte par un autre :
A choix dans table actuelle, ou dans toutes les tables de la base de données
A choix dans le champ dans lequel on se trouve, ou dans toute la table
Uniquement dans le champ dans lequel on se trouve

Warning: Undefined variable $Q4 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1369

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1369

Warning: Undefined variable $Q4 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1370

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1370
5. Il est possible de trier sur plusieurs champs
Oui
Non
Oui, mais seulement si la propriété Tri multiple est défini sur Oui dans la table

Warning: Undefined variable $Q5 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1391

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1391

Warning: Undefined variable $Q5 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1392

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1392
6. Comment fait-on pour afficher les totaux de certaines colonnes ?
La ligne des totaux s'affiche automatiquement, sans intervention
Il faut mettre la propriété de la table Lignes de total à Tous les champs
Dans le ruban Accueil, cliquez sur Totaux

Warning: Undefined variable $Q6 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1416

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1416

Warning: Undefined variable $Q6 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1417

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1417
7. Lorsqu'on trie un champ qui est une liste déroulante a multi-choix
Il trie par le choix le plus en amont dans l'ordre alphabétique (Rouge;Bleu sera trié par Bleu)
Il trie par le choix le plus à gauche (Rouge;Bleu sera trié par Rouge)
Il place en tête de liste, non triés, les champs qui contiennent plusieurs choix, et, ensuite, il ne trie correctement que les champs qui ne sont remplis qu'avec un seul choix.
On ne peut pas trier ce type de champ dans les tables

Warning: Undefined variable $Q7 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1440

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1440

Warning: Undefined variable $Q7 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1441

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1441
8. J'ai une table contenant 2 champs . Champ1 et Champ2. Dans Champ1, il y a un enregistrement avec aaa-bbb. Je suis actuellement dans Champ2, je clique dans la zone de recherche : , et je cherche AA-BB
Il trouvera
Il ne trouvera pas, car je ne suis pas dans le bon champ
Il ne trouvera pas à cause des majuscules
Il ne trouvera pas à cause du trait d'union
Il ne trouvera pas, car AA-BB n'est qu'une partie au milieu du contenu complet AAA-BBB

Warning: Undefined variable $Q8 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1466

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1466

Warning: Undefined variable $Q8 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1467

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1467
9. J'applique un filtre dans ma table. Je la ferme. Je la rouvre. Le filtre est automatiquement appliqué
Oui
Non
Oui, mais seulement si la propriété de la table Filtrer sur charrgement est définie à Oui

Warning: Undefined variable $Q9 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1488

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1488

Warning: Undefined variable $Q9 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1489

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/access/cours2010/lecon017/index.php on line 1489