Leçon 8 : Le type monétaire

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

Résumé de la leçon précédente

Dans la leçon précédente, nous avons vu comment Access gère les formats et les types de date et d'heure. Vous comencez maintenant à avoir un bon aperçu des types de données sous Microsoft Access. Vous connaissez maintenant le Numérique, le texte, le mémo, le Date/Heure.

Aperçu de cette leçon

Dans cette leçon, vous allez apprendre à gérer le type Monétaire. C'est en fait un type de numérique. Il me semble d'ailleurs que plutôt que de faire un type de données particulier Monétaire, Microsoft aurait pu le donner comme simple option de Numérique, tout comme vous choisissez Entier Long ou Réel simple, mais bon... Ils ont plutôt décidé d'en faire un type à part.

Après avoir lu l'aperçu de cette leçon, je suppose que le type de données Monétaire est destiné à recevoir tous les champs qui parlent d'argent ?

Absolument ! Tout ce qui contient de l'argent sera défini en monétaire.

Et pourquoi faut-il utiliser du monétaire plutôt que du numérique ?

Parce que le numérique ne permet pas les chiffres après la virgule...

Comment ça ??? Si ! Si je définit mon numérique en Réel Simple plutôt que Entier Long, il accepte tout à fait !

Ha ha ha ! Vous avez entièrement raison ! Je voulais m'assurer que vous suiviez bien !

Petit plaisantin ! ça ne répond toujours pas à ma question ...

En fait, c'est un peu subtil. C'est la manière de stocker les données qui diffère. Selon le type de données que vous allez utiliser, vous aurez des limitations différentes. Je vais vous les expliquer, mais ces limites étant très grandes, elles ne sont pas d'une utilité transcendentale...

Avant de parler de monétaire, ce pourquoi nous sommes là, voyons les différentes limites des numériques. Dans une leçon précédente, nous n'avons vu que les numériques Réels simples (qui acceptent des virgules), et les entiers longs (qui n'en acceptent pas). En fait, il y a d'autres choix. Pour suivre l'exemple, ouvrez la base de données habituelle procd, et dans T_Client, en dessous du prénom, ajoutez un champ Salaire (Et oui... il faut se rappeler comment on fait pour insérer une nouvelle ligne...) : . Dans les types de données, nous allons nous intéresser aux types Numérique et Monétaires : . Si vous choisissez Numérique, vous constatez qu'il y a une propriété Taille du champ en bas qui contient les choix suivants : . Par contre, quand vous choisissez Monétaire dans cette liste , alors, il n'y a aucune propriété Taille du champ en bas de l'écran. C'est pour ça qu'en début de leçon je me demandais pourquoi Microsoft n'a pas ajouté Monétaire à cette liste , et supprimé monétaire de celle-ci : .

Touours est-il que voici le tableau des limites des différents types :

Numérique
Type Minimum Maximum Accepte les décimales ? Exemple d'utilisation
Octet 0 255 Non Si vous devez stocker le nombre de roues de camions par camion, le nombre de jours requis pour un projet, Le nombre d'articles en stock (Mais attention donc, jamais plus de 255), la taille d'un client en CM, le nombre d'élèves d'une classe, ...
Entier -32768 32767 Non Si vous devez stocker l'année de naissance d'un client (1975, 1933, ...), le nombre d'élèves d'une école, la surface en mètres carrés d'un terrain de sport, ...
Entier Long –2 147 483 648 2 147 483 647 Non Si vous devez stocker le nombre d'habitants d'une ville, le nombre de mots contenus dans un livre, ...
Réel simple -Quelques millions +Quelques millions Oui, quelques unes Si vous voulez stocker la taille d'un client en mètres, des notes d'examens (4.5, 17.5, etc...), la température d'un patient, ...
Réel Double - Quelques dizaines de milliards + Quelques dizaines de milliards Oui, pas mal Si vous devez compter les kilomètres séparant les planètes, les mètres cubes d'eau contenus par les océans, le poids de la terre en kilos
N° de réplication Ce type est très spéciale, utilisé seulement lors de la réplication de données. Je ne m'étends pas sur le sujet maintenant
Décimal - Beaucoup de milliards + Beaucoup de milliards Oui, pas mal Je ne vois pas d'application différentes au Réel Double.
Monétaire
- Beaucoup de milliards + Beaucoup de milliards Oui, pas mal Tout ce qui est argent : Salaire, primes, retenues, prix, ...

Vous avez constaté que je suis un peu évasif quant aux bornes inférieures et supérieures des nombres avec décimales. Simplement parce que j'ai constaté que la manière de fonctionner d'Access est destinée uniquement à la compréhension de mathématiciens qui ont une connaissance pointue de la manière dont sont stockés les grands chiffres. En effet, j'ai constaté que lors d'utilisation de grands nombres avec ces types de données comprenant des décimales, il lui arrive d'arrondir, de montrer les chiffres en Notation scientifique (10E+12 par exemple), selon les cas.

Pour information, je vous livre ce que l'aide d'Access nous donne comme limite de ces types de données:

Type Limites Décimales
Décimal Stocke les nombres compris entre -10^28 -1 et 10^28 -1 (.mdb) 28
Réel simple Nombres entre –3,402823E38 et –1,401298E–45 pour les valeurs négatives et entre 1,401298E–45 et 3,402823E38 pour les valeurs positives. 7
Réel double Nombres entre –1,79769313486231E308 et –4,94065645841247E–324 pour les valeurs négatives et entre 1,79769313486231E308 et 4,94065645841247E–324 pour les valeurs positives. 15

N'ayant jamais eu à développer d'application Access utilisant de très grands nombres (J'entends par là des nombres supérieurs à un milliard), je ne puis pas vous en dire plus.

Il y a quand même pas mal de subtilités dans ces types de données !

C'est pour ça que je vous propose de retenir seulement 3 types : Numérieur Réel simple pour tout ce qui est nombre avec des virgules, Numérique Entier long pour tout ce qui est nombre sans virgule (C'est le type qui est proposé automatiquement quand vous choisissez qu'un champ doit être numérique), et Monétaire pour tout ce qui est argent.

Il faut que je vous informe d'une extrême subtilité qui mène tous les débutants à l'erreur : Quand vous choisissez Monétaire dans la liste des types : N'EST PAS la même chose que le monétaire que vous trouvez dans ses options . Ce monétaire désigne la PRECISION monétaire. C'est ce que je vous ai dit plus haut. Tandis que celui-ci représente L'AFFICHAGE monétaire. C'est à dire que si vous choisissez monétaire dans les options, vous allez avoir les salaires qui s'affichent avec un symbole monétaire devant, comme ceci : . Mais c'est juste le format d'affichage. En d'autres mots, vous pouvez très bien avoir un champ de type Numérique/Réel simple par exemple, et demander le format d'affichage Monétaire ! Il va afficher les valeurs de PRECISION réel simple en FORMAT monétaire (Avec le Sfr Devant)

Mais pourquoi Sfr, et pas FF ou $ ou £ ou Euro ?

Ca, c'est encore une fois le coup des paramètres régionaux. Rappelez-vous la leçon précédente : , , , : Nous avons défini que l'année était affichée en 2 ou 4 chiffres. Et bien ici, c'est pareil : Le symbole monétaire dépend de la région ou vous vous trouvez. Si vous êtes en France, vous avez certainement le symbole FF qui est apparu à la place de Sfr chez moi.

Nous allons essayer de définir le symbole monétaire comme étant € (Le signe Euro). Faites , , , , et cliquez cette fois sur l'onglet Symbole monétaire. Dans la zone Symbole Monétaire, vous mettez le texte que vous voulez (FF, Lires, $, ou même Gâteau, c'est égal. C'est ce qui sera affiché devant les nombres qui seront défini en Symbole monétaire). Dans notre cas, nous allons essayer d'installer le signe de l'euro (€). Pour ce faire, cliquez dans la zone Symbole monétaire, et faites Alt Gr E : . Il est possible que ça ne marche pas. En effet, l'Euro étant une monnaie récente, il suffit que votre clavier soit trop ancien ou mal configuré pour que ce signe ne soit pas possible à afficher. Validez avec OK, et revenez dans Access : Vous devriez avoir instantanément cet affichage : (Pour autant que vous ayez entré les mêmes salaires que moi évidemment...) : .

Mais pourquoi faire toute cette complication, puisqu'il y a Euro dans la liste des options ?

J'ai pensé aux utilisateurs d'Access 97 qui eux, n'ont pas encore cette option. Et de toute façon, c'était une bonne occasion de voir comment on change la monnaie

Ah OK... Bon à part ça, Il ne fait pas la conversion des francs français en Euro...

Ah non ! Access ne fait pas tout. Il ne vous fera pas le café non plus... Il se contente de changer le nom de la monnaie

Bien... Mais je suis en train d'imaginer si j'ai 500 clients, il va chaque fois me mettre le signe Euro devant tous les salaires... C'est un peu lourd... On ne peut pas simplement afficher le salaire sans signe monétaire, et avoir juste le nom de la monnaie en en-tête de colonne ?

Oui. C'est généralement ce qu'on fait. Pour le salaire, laissez la précision monétaire, mais demandez le format d'affichage Standard . Ensuite, pour changer le titre de la colonne sans changer le nom de champ, vous savez le faire : C'est la légende que vous changez comme ceci : . Pour finalement obtenir ce résultat satisfaisant :

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

Le format monétaire s'applique généralement à tous les champs de type Argent (Salaire, Pirme, Commission, Amende, Prix, ...). Mais ce n'est qu'une sorte de numérique qui se choisit à part.
Il ne faut pas confondre la précision Mmonétaire qui permet de mettre de gros chifrfes avec pas mal de décimales, et l'affichage monétaire qui n'est autre que l'affichage d'une certaine monnaie (ou plus largement d'un certain texte) avant le montant lui-même.

Il est donc judicieux de choisir entre 3 types principaux de numériques : Le numérique Entier Long, Le Numérique Réel Simple, et le monétaire. Il existe toute fois d'autres types secondaires tels que Réel Double, Décimal, Entier, et Octet.

Avez-vous bien compris ?

  1. Quel est le type de données qui est le plus faible en terme de taille ?
    a.Entier
    b.Entier Long
    c.Octet ***
    d.
    Décimal
  2. Je désire installer un champ Pointure pour gérer les chaussures d'une équipe de basket. Que vais-je utiliser comme type de données ?
    a.Entier
    b.Octet
    c.Réel Simple *** (Uniquement parce qu'il peut y avoir des demi taille...)
    d.Entier Long

  3. Je veux gérer une table de délinquants, et j'ai besoin de connaître le nombre de leurs larcins. je vais utiliser :
    a.Entier *** (Octet pourrait peut être suffire, mais on ne sait jamais... Des fois qu'il y ait plus de 255 larcins... )
    b.Octet
    c.Entier Long
    d.Réel Double

  4. Un des types de données est fantaisiste. Lequel ?
    a.Entier Long
    b.Réel Simple
    c.Entier Simple ***
    d.
    Réel double
  5. Je suis gestionnaire de fortune. J'ai besoin de connaître le montant de la fortune de mes clients. Je vais utiliser :
    a.Réel Double
    b.Monétaire ***
    c.Réel simple
    d.Texte

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

Nous allons gérer un groupe de vendeurs de photocopieuses. Une photocopieuse est un objet qu'on ne vend pas comme un pain au chocolat. Un excellent vendeur peut en placer 1 à 2 par jour... Peut-être 3 s'il a de la chance... Vous allez créer une base de données photocopiciel.mdb, dans laquelle vous créerez une table T_Vendeur, avec les informations suivantes :

  • Le nom du vendeur
  • Son prénom
  • Le nombre total de photocopieuses qu'il a vendu depuis qu'il travaille ici
  • Le nombre moyen de photocopieuses qu'il vend par semaine
  • L'age du vendeur
  • Le pourcentage de commission qu'il touche par photocopieuse vendue
  • Son salaire fixe en francs suisses mensuel

Voici 2 exemples de vendeurs :

  1. José Dos Santos à vendu en tout 260 photocopieuses, il en vend en moyenne 6 photocopieuses par semaine. Il a 51 ans, il touche 14% de commission, et son salaire fixe est de 4000 francs suisses.
  2. Jeanine Poncet à vendu en tout 17 photocopieuses (elle est nouvelle...), elle en vend en moyenne 2 photocopieuses par semaine. Elle a 26 ans, elle touche 5.5% de commission, et son salaire fixe est de 3800 francs suisses.

Vous avez sans doute compris l'exercice : Il va falloir créer les champs et leur donner les tailles les plus justes par rapport à leur contenu.

Téléchargez la solution de l'exercice 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 procd.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.

Aperçu de la leçon suivante

Lors de la prochaine leçon, nous verrons le type de champ Oui/Non, qui est simplement un type booléen, c'est à dire que c'est un champ qui veut dire Oui ou Non, rien d'autre.