Leçon 6 : Gestion des champs : Texte, Mémo, tri, utilisation judicieuse des tailles de texte

Temps nécessaire pour suivre cette leçon : Une petite 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. Besoin d'aide pour le téléchargement ? : Cliquez ici.

Aperçu de cette leçon

Maintenant, nous allons un peu jongler avec les textes. Peut-on vraiment mettre n'importe quoi dans les champs de type texte ?

Sommaire

  1. Nombre de caractères dans un champ Texte
  2. Gestion de la mémoire par Access
  3. Le type de champ Mémo : avantages et inconvénients

Revenons aux champs de texte. Est-ce qu'on peut vraiment y mettre tout ce qu'on veut ?


Nombre de caractères dans un champ Texte

Oui, mais dans la limite imposée par la propriété "Taille du champ" : . Avec les champs texte, vous pouvez définir jusqu'à 255 caractères maximum. Si vous essayez d'écrire 256 dans cette zone , alors, Access va vous asséner ce message d'erreur : . Laissez donc la valeur à 50 pour l'instant.

Il me semble que dans une leçon précédente, nous avons utilisé cette propriété "Taille du champ", mais nous avions le droit de choisir entre Réel Simple, Entier Long (et d'autres) ?

Oui, parce qu'il s'agissait de numérique : . Dans le cas d'un champ de type texte, cette fois, on compte simplement le nombre de caractères :

Et si, par exemple, il y avait déjà des données dans un champ Texte de longueur 50, et qu'on précise à présent qu'il s'agit de texte plus petit (10 caractères par exemple), que se passe-t-il ?

Les données seront purement simplement tronquées !

Faisons un test : ajoutez un nouveau champ Remarque (qui contiendra les remarques des clients - c'est à dire des annotations personnelles de style "Ce client a déménagé en 1996, et depuis, on ne l'a plus revu", ou encore "Attention : Il paye ses factures en retard !" - Une sorte de fourre tout, quoi), et définissez cette remarque comme du texte de longueur 4 : . Lancez la table en mode saisie de données, et essayez d'écrire ABCDE comme remarque pour William Clunton. Constatez que vous ne pouvez pas écrire la dernière lettree E (Oui : c'est un caractère de trop). Revenez alors en mode création, et réduisez encore la taille du champ Remarque cette fois à 2 caractères .

Relancez la table en mode saisie de données. Access vous affiche alors ce message d'avertissement :

En gros il nous dit : "Attention, la taille de la remarque était de 4 caractères... Il y a peut-être des remarques de clients qui exploitent l'ensemble de ces 4 caractères. Si vous réduisez encore cette taille, je vous préviens d'avance que tout ce qui dépasse, je coupe !"

Notre remarque ABCD va être coupée à ... AB. Répondez Oui. Constatez qu'effectivement, votre remarque pour William Clunton a été réduite en AB sans autre forme de procès. Si vous aviez eu 50'0000 clients avec des remarques de 4 caractères, elles auraient été réduites à 2... et pas question d'annuler !

Et si je reviens en mode création pour remettre 4 caractères au champ remarque, elle va redevenir ABCD ?

Pas du tout ! Essayez : Revenez en mode création, et remettez 4 caractères pour ce champ remarque. Lancez la table en mode saisie de données... Constatez que la remarque est restée AB... A vous le remettre CD à la main : Faites-le.

Aïe ! Il faut être drôlement attentif avant de réduire la taille d'un champ !

Comme d'habitude avec Access... Il faut prévoir tous les cas de figures AVANT d'entrer des données... Sinon, c'est la cata !

En fait, pour être sûr de ne pas être embêté, je pourrais mettre tous mes champs texte à 255 caractères puisque c'est le maximum !

Je ne vous le conseille pas ! Parce que les tailles de champs fonctionnent exactement comme des places de parking. La place de parking, c'est la taille du champ, et la donnée qu'on met dedans (ABCD par exemple), c'est la voiture.

Vous savez pourquoi les places de parking ne font pas 255 mètres de long ? Ce serait pourtant plus pratique pour se parquer.. Plus besoin de faire de créneau !

Oui. mais qu'est-ce qu'on perdrait comme place... Les voitures prendraient un tout petit espace dans cette grande place !


Gestion de la mémoire par Access

A ce moment-là, il n'y a qu'à concevoir des places de parking exactement de la longueur d'une voiture standard : 3 mètres

Et si jamais il y a quelqu'un qui a une grosse voiture, il ne peut pas s'y parquer alors ?

Exactement. C'est pourquoi les places de parkings sont juste un peu plus grandes que la taille d'une grosse voiture !

Elles ne sont ni trop grandes ni trop petites. C'est exactement comme ça qu'Access utilise la mémoire de votre disque dur : Si vous avez un champ Remarque qui contient 255 caractères, mais que les remarques sont longues de 5 ou 6 caractères, toute la place restante est réservée et donc ... perdue ...

On peut faire un simple calcul avec 1000 clients : Voyez ici : Les places réservées sont trop grandes par rapport au contenu :

Ici, les places sont bien ajustées. Oui, certaines places sont trop grandes, mais c'est normal, on ne peut définir qu'une taille de champ pour tous les enregistrements

Donc... adaptez judicieusement les tailles : Ca a d'autres avantages : Si par exemple, vous avez des clients de nationnalité suisse, et que vous désirez indiquer leur canton d'origine en 2 lettres d'ou ils sont issus (BE pour Berne, GE pour Genève, ZH pour Zürich, etc...)... Imposez bien 2 caractères : Vous économiserez de la place, la base de données ne s'agrandit pas inutilement, et surtout, vous ne risquez pas de mettre une 3ème lettre par erreur !

Ceci dit, tout à fait entre nous, pour la question de place, avec les tailles phénoménales qu'atteignent les disques durs à l'heure actuelle, c'est un peu économiser pour le plaisr d'économiser parce qu'avant que vous n'arriviez à remplir votre disque dur, il vous faudra entrer des des dizaines de millions de clients, même avec des tailles de champs de 255 caractères !

Dans le cas des remarques, justement, on devrait pouvoir entrer plus de 255 caractères... Par exemple
"Ce client nous a commandé pour plus de dix mille francs de marchandises, mais n'en a payé qu'une toute petite partie. Nous refusons d'honorer ses futures commandes tant qu'il ne nous règle pas ce qu'il nous doit".
C'est long, comme remarque !


Le type de champ Mémo : avantages et inconvénients

Oui. dans ce cas, on n'utilise plus du texte, mais du mémo : . Le mémo permet d'entrer du texte quasiment de longueur illimitée (En fait, il me semble que la limite est de 65'536 caractères). Par contre, ça ralentit quelque peu le fonctionnement de la machine d'une part, et ça prend plus de place que du texte d'autre part.

Avec la puissance actuelle des PC, et la taille des disques durs, ça m'est bien égal. Je ne m'en apercevrai même pas !

C'est vrai. Mais il y a un autre inconvénient : On ne peut pas trier les champs mémos ! Nous n'avons pas encore abordé les tris de données.

Profitons-en pour les analyser maintenant. Pour commencer, précisez que le champ Remarque est de type Mémo, Remaniez ensuite votre table T_Client de manière à ce qu'elle ressemble à celle-ci :

Si vous désirez trier vos clients par ordre alphabétique (du nom de famille), il vous suffit de cliquer avec le bouton droit de la souris sur n'importe quel nom de famille, et de choisir "Tri croissant" . Votre table est maintenant triée par ordre croissant des noms de famille, et bien évidemment, les autres colonnes ne sont pas mélangées. Bill Clunton est toujours le président de US Computer, Michael Jordane est toujours basketteur, etc.. Je veux dire par là que quand on trie une colonne, les autres colonnes suivent la colonne triée.

Si vous voulez trier tous les clients par ordre alphabétique des prénoms : Il suffit de cliquer avec le bouton droit sur n'importe quel prénom, et choisir Tri Croissant. Facile, non ?

Et si vous vouliez trier les clients du plus grand au plus petit (je parle de sa hauteur en centimètre), vous aurez sans doute deviné qu'il suffit de cliquer avec le bouton droit sur une taille, n'importe laquelle, et de choisir Tri Décroissant.

Attention : Vous ne pouvez pas trier par 2 colonnes en mêmne temps : Si vous triez par nom, et ensuite par taille, les noms seront à nouveau en désordre. C'est logique.

Et maintenant, une précision: Vous ne pouvez pas trier par le champ Remarque. Si vous essayez, vous consaterez que Tri croissant et Tri décroissant sont grisés (indisponibles) ! C'est une spécificité interne inhérente à la conception d'Access.

Dès Access 2000 et XP, il est possible de trier les champs Mémos dans les requêtes. Avec Access 97, pas question. Mais nous reviendrons sur les requêtes ultérieurement.

Ceci dit, entre nous, quel est l'intérêt de trier par les remarques ? ...

On utilise donc des champs mémos uniquement en cas de besoin d'entrer des renseignements très longs dans un champ ET qu'on a pas besoin de les trier ?

C'est ça. Le champ Remarque, ou Observation est un excellent exemple. On utilise énormément le champ Remarque pour indiquer des précisions sur un client, ou n'importe quoi d'autre qui ne trouve pas sa place dans les autres champs.

Bon... Hem... On peut résumer ?

Les types de données doivent être judicieusement défini dès le départ. Il faut savoir si tel ou tel champ est numérique, ou texte ou autre. Dans le cas d'un texte, il faut savoir d'avance d'à peu près combien on aura besoin de caractères. Il ne sert à rien d'en mettre trop, et il ne faut pas en mettre trop peu non plus.

Dans le cas ou on a besoin d'entrer du texte qui peut dépasser 255 caractères, on utilise un champ de type Mémo, qui permet des longueurs de texte quasiment illimitées, mais il faut se rappeler qu'on ne peut pas facilement trier ce champ.

Avez-vous bien compris ?

  1. Combien peut-on mettre de caractères dans un champ texte au maximum ?
    a. 5
    b. 255 ***
    c. 256
    c. illimité

  2. J'ai un champ texte de 50 caractères. Puis-je y mettre 428878 ?
    a. Oui *** (Texte admet aussi les chiffres)
    b. Non

  3. J'ai un champ qui s'appelle Titre, et qui va contenir soit Monsieur, soit Madame, soit Mademoiselle. Quelle va être la taille la plus judicieuse de mon champ texte ?
    a. 7
    b. 8
    c. 12 *** (La taille du plus grand contenu possible : Mademoiselle)
    d. 50

  4. J'ai besoin d'un champ qui va s'appeler "NomJeuneFille", qui ne sera rempli que dans le cas de clientes mariées. Que vais-je utiliser comme type de données ?
    a. Texte de 30 caractères *** (255 est vraiment trop long)
    b. Texte de 255 Caractères
    c. Mémo
    d. Numérique, Réel Simple

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.

Exercice

Créez une base de données qui s'appelle finilafumee.mdb. C'est un club qui rassemble les gens désirant arrêter de fumer. Installez-y les informations suivantes dans une table des membres.:

  1. Le nom du membre
  2. Son prénom
  3. Un champ qui explique en 2 mots ses hobbies
  4. Son pays de naissance
  5. Combien de cigarettes il fume par jour
  6. L'age auquel il a fumé sa première cigarette
  7. La(les) raison(s) principale(s) pour la(les)quelle(s) il veut s'arrêter de fumer

L'exercice consiste à créer une table qui contiendra des noms de champs corrects, avec les types de données appropriés. Passez en revue les options de champs tels que les tailles, Légendes, et Valide Si.

A titre d'exemple, voici 2 personnes que vous pourrez entrer dans votre Table :

- Julien Giovanni. Il aime le tennis et la pêche en mer. Il est né en Angleterre, et actuellement il fume 3 paquets de cigarettes par jour (une soixantaine de cigarettes). Il ne se rappelle plus l'age de sa première cigarette, mais il veut s'arrêter car son médecin a tiré la sonnette d'alarme

- Martine Gonzalez aime la couture, la cuisine et les voyages. Elle vient de France. Elle fume environ 1 paquet quotidiennement (20 cigarettes). Elle a commencé à 14 ans, et elle veut s'arrêter car elle est enceinte.

Réfléchissez bien, et comparez votre résultat avec la solution de l'exercice que vous pouvez télécharger ici.

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. Besoin d'aide pour le téléchargement ? : Cliquez ici.

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