Sommaire
- Nombre de caractères dans un champ Texte
- Gestion de la mémoire par Access
- 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" :


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 :

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 :


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

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ètresEt 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

- 1000 remarques à 255 caractères = 255'000 caractères réservés
- Les remarques les plus longues sont de (admettons) 20 caractères. On aurait pu définir la remarque à une longueur de 20 caractères (disons 25 caractères pour être sûrs)
- Il y a donc systématiquement AU MOINS 255-25 = 230 caractères qui ne seront JAMAIS utilisés, mais bloqués/réservés malgré tout !
- et 230 caractères X 1000 clients = 230'000 caractères de perdus... Soit 230 KiloOctets : Ce n'est pas rien !
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 :
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 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 ?
|
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.:
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. |
0 commentaires:
Enregistrer un commentaire