![]() |
![]() |
Leçon 7 |
![]() |
Argent et type monétaire
|
Dans cette leçon, nous allons apprendre à gérer le type de données monétaire (tout ce qui constitue de l'argent). Nous apprendrons à gérer l'affichage des différentes monnaies (€, CHF, etc.), ainsi que les décimales. Nous verrons également en détail les différents types de numériques et leurs limites. |
Sommaire
|
Ouvrez Formagiciel. accdb, ouvrez la table T_Client, et ajoutez SalaireMensuel que vous définirez en Monétaire.
Lancez la table en mode saisie de données, et entrez 1234.65 comme salaire d'Edith Piaf.
Ce montant va s'afficher comme ceci : . fr. au début du montant, un apostrophe ' de séparation entre les milliers et les centaines, et deux décimales après le point.
Il est possible que vous n'ayez pas le même symbole monétaire que moi.
Tout comme les dates et heures, la manière d'afficher les valeurs monétaires est déterminée lors de l'installation de Windows, et tout dépend de la région ou du pays dans lequel vous vivez. Nous y reviendrons.
Attention : le bout de chapitre qui va suivre n'est pas évident, et si vous ne le comprenez pas vraiment, ce n'est pas bien grave.
Revenez en mode création, nous allons observer une sorte de confusion. Constatez que SalaireMensuel est défini en type Monétaire, mais, de plus, sa propriété Format est également Monétaire.
Ces deux monétaires ont deux fonctions différentes !
Le type de données Monétaire est la précision du nombre. Vous vous rappelez, dans la leçon 5, les différents type des données numériques ?
Eh bien, ce type Monétaire correspond à une sorte de précision numérique.
La propriété Format, quant à quant à elle, détermine l'apparence esthétique de l'affichage. Et Microsoft n'a rien trouvé de plus malin que de nommer un de ces formats "Monétaire" ! Ce n'est pas étonnant qu'on confonde !
Regardez maintenant ce qui se passe si je définis mon champ en Numérique :
Dns ce cas, dans les propriétés du champ, je peux définir la taille du champ, mais en plus, je peux définir son format.
Ainsi, lorsqu'on choisit le type de données Numérique, on peut choisir sa Taille, mais quand on choisit le type Monétaire, on a pas le choix de la taille.
Du coup, on peut légitimement se poser la question : Le type de données Monétaire, c'est quoi ? Un Réel Simple ? Un Réel Double ? Un Entier Long ? ...
Eh bien non, c'est encore un autre type de données numérique non-disponible dans la liste des tailles de numérique !
Afin d'éclaircir un peu ces différents formats, voici un tableau récapitulatif
Type de données | Propriété Taille du champ |
Décimales possibles |
Le plus petit nombre possible |
le plus grand nombre possible |
Exemple d'utilisation |
Numérique | Octet | Non | 0 | 255 | Nombre d'enfants |
Numérique | Entier | Non | -32'768 | 32'767 | Nombre d'amis sur FaceBook ![]() |
Numérique | Entier Long |
Non | -2'147'483'648 | 2'147'483'647 Plus de 2 milliards, donc. |
Principalement en relation avec les Numéros automatiques (que nous verrons plus tard.) |
Numérique | Réel Simple | Oui (mais ça dépend) | -9'999'999.00 | 9'999'999.00 Presque 10 millions |
En statistiques et probabilités, ça peut être utile |
En réalité, on a droit à 7 chiffres en tout et pour tout en Réel Simple. Donc, si on écrit 9'999'999, on a pas le droit de mettre des décimales parce qu'on a déjà utilisé les 7 chiffres, mais on pourrait écrire 9'999.123 par exemple, ou même 0.123456 : L'important est de ne pas utiliser plus que 7 chiffres. | |||||
Numérique | Réel Double | Oui (mais ça dépend) | -999'999'999'999'999 | 999'999'999'999'999 Presque un million de milliards |
Microbiologie, physique quantique, tous les cas ou l'extrême précision des décimales est cruciales |
La remarque est exactement la même que pour le type Réel Simple, sauf qu'ici, on a droit à 15 chiffres au lieu de 7. C'est à dire qu'on pourrait écrire un nombre très petit, comme par exemple : 0.00000000000001 On peut écrire des nombres beaucoup plus grands encore dans un Réel double ou réel simple, mais alors, ces nombres seront arrondis : Par exemple, si vous essayez d'écrire le nombre 123456789123456789123456789 dans un Réel Double, vous n'aurez pas de message d'erreur, mais un arrondissement comme ceci : 123'456'789'123'457'000'000'000'000 |
|||||
Numérique | N° de réplication | On ne va pas s'occuper de cette option, ça date du temps d'Access 2003, ou on pouvait répliquer les bases de données, mais c'est une autre histoire | |||
Numérique | Décimal | Non | -999'999'999'999'999'999 | 999'999'999'999'999'999 Presque un milliard de milliards |
Astrophysique, théoriques des grands nombres, mathématiques théoriques |
Monétaire | pas d'option : c'est obligatoirement la taille dire "monétaire" | Oui | -99'999'999'999'999.9999 | 99'999'999'999'999.9999 Si on ajoute un millième de centime, on arrive à cent mille milliards |
Toute notion d'argent |
Contrairement aux Réels doubles et simples, ici, la précision des décimales est 4. Pas question, par exemple, d'écrire 9.99999, ce sera arrondi à 10. C'est donc un type de données particulièrement bien étudié pour contenir des sommes d'argent. |
Dans l'exemple qui suit, je vous montre qu'il est possible de mixer de manière "contre-nature" les types de données et leur format. Dans cet exemple, nous inscrivons 1235.45 comme SalaireMensuel d'Edith Piaf.
Dans l'exemple du haut, nous avons une précision monétaire, mais un affichage en format Standard. Le format Standard est sans doute le format le plus lisible, le plus sympathique et le plus utilisé.
Dans l'exemple du bas, nous avons un Numérique Entier, affiché en format Monétaire : il y a donc les deux décimales affichées en plus du symbole fr., mais comme le type Entier n'admet pas les décimales, elles seront systématiquement à 00.
Voilà ! La partie compliquée est terminée !
Nous allons revenir à des notions plus basiques. Définissez SalaireMensuel comme étant un type Monétaire. Pour le format, vous avez trois choix pertinents : Monétaire, Euro et Standard.
Dans les trois cas, vous aurez une apostrophe ' de séparation entre les milliers et les centaines (en fait, par groupe de 3 chiffres : 12'345'678.75), un point décimal, et deux chiffres après la virgule.
Pour afficher le signe €,(Même si vous êtes dans Excel ou dans Word) appuyez sur
Maintenant, le symbole fr. ne me convient pas ! A Genève, en Suisse, on utilise la convention internationale CHF.
Pour ce faire :
Attention : A la fin de l'opération, lorsque vous revenez dans Access et que vous rouvrez la table T_Client, le format de SalaireMensuel s'est transformé en un format personnalisé ("fr. "#'##0.00;"fr.-"#'##0.00) !
C'est à dire qu'il pense que vous désirez garder l'ancien format contre vents et marées !
Afin d'utiliser le nouveau format monétaire par défaut que vous venez de sélectionner dans le panneau de configuration, c'est à vous de le re-sélectionner.
Attribuez quelques salaires, comme ceci :
Pour Coluche, si vous écrivez 9999.999, comme l'affichage va se faire sur 2 décimales.
Access va vous afficher 10'000.00, mais ce sera bien 9999.999 qui sera stocké de manière interne (Alors que si le type de données était du Numérique Entier, les décimales auraient été purement et simplement éliminées).
Si vous rétrécissez trop les colonnes, dans le cas de texte, on ne verra que la partie gauche du texte, mais s'il s'agit de nombres, vous n'en verrez même pas une partie, mais seulement des dièses ####### à la place :
C'est très pertinent, parce que je vous laisse imaginer les problèmes si on ne lisait que partiellement un nombre !
Dans cet exemple, j'ai trop rétréci la colonne, et on ne peut pas voir les nombres supérieurs à 10'000. Certains prénoms trop long (Steven, Michael, Patrick), sont, eux, tronqués.
Elargissez à nouveau les colonnes de manière à voir les salaires correctement.
Retournez en mode création. Nous allons préciser que nous désirons un affichage sur 4 décimales (Je rappelle que c'est de toute façon le nombre maximum de décimales acceptée par la précision monétaire).
Vous constatez que, effectivement, 10'000 s'affiche bien comme 9'999.9990.
D'une façon globale, personnellement, je préconise l'affichage des montants comme ceci :
Revenons sur le format personnalisé que vous avez aperçu tout à l'heure : "fr. "#'##0.00;"fr.-"#'##0.00. Le formatage des nombres est quelque chose d'assez complet (et complexe). Aussi, nous n'allons pas creuser ces possibilités trop profondément.
Nous allons étudier ce format : "fr. "#'##0.00;"fr.-"#'##0.00. En fait, il est composé de 2 formats : le premier : ,fr. "#'##0.00 représente l'affichage des nombres positifs (supérieurs à 0), et l'autre partie, "fr.-"#'##0.00, après le point-virgule, représente le format utilisé lorsque les chiffres sont négatifs (en dessous de zéro) : C'est facile, c'est le même, sauf qu'il y a le signe moins (-) juste avant.
Voici l'explication de ces éléments :
Partie du format | Explications | On aurait pu écrire |
pour 1234.56, Access aurait affiché : |
"fr. " | C'est un texte facultatif qu'on affiche à côté du nombre. On peut aussi le mettre à droite. | "$$$"#'##0.00 #'##0.00" Dollars" |
$$$1'234.56 1'234.56 Dollars |
#'##0 | le dièse # représente les 0 non-significatifs (Rien à voir avec les # qui sont affichés quand la colonne est trop étroite !). ça permet de savoir quand et comment afficher un caractère de séparation entre les groupes de 3 chiffres. |
"fr. "# ##0.00 "fr. "#,##0.00 |
fr. 1 234.56
fr. 1,234.56 |
.00 | Nombre de décimales affichées, si la propriété Décimales est définie sur Auto (Si le nombre de décimales est imposé par la propriété Décimales, c'est cette propriété décimales qui prend le dessus) | "fr. "#,##0.000000 "fr. "#,##0 |
fr. 1,234.560000 fr. 1,235 (Arrondissement à 1235 qui est plus proche de 1234.56 que 1234) |
Ces formats personnalisés ne sont pas évident à appréhender, mais voici une petite astuce pour vous aider à les créer correctement grâce à Excel :
Maintenant, vous pouvez sélectionner en noir ce format de nombres très sympathique,
et le copier avec .
Retournez ensuite dans Access, dans votre table T_Client en mode création, et collez ce format de nombre dans la propriété format de SalaireMensuel.
Attention : pour une raison que j'ignore, lorsque vous validez avec ENTER, ou que vous cliquez ailleurs, ce joli format tout propre qui fonctionne très bien :
CHF #'##0.00;[Rouge]CHF #'##0.00
se transforme en un format tout pourri qui ne fonctionne pas :
ch"F #'##0.00";[Rouge]ch"F #'##0.00"
Que vous devrez méticuleusement RE-corriger à la main en
CHF #'##0.00;[Rouge]CHF #'##0.00
Ne me demandez pas pourquoi il faut faire ce réajustement à la main, je n'en ai aucune idée ! Tout ce que je peux vous dire c'est que d'ûne manière globale, Access et Excel acceptent les mêmes possibilités de formats, mais pas toujours ! Restez prudent !
Lancez ensuite la table en mode saisie de données et attribuez un salaire négatif : -5825.65 à Steven Spielberg : Voilà : il s'affiche en rouge :. Vous aurez donc compris que c'est cette partie du format : "CHF "#'##0.00;[Rouge]"CHF "#'##0.00 qui est en cause.
Comme vous le constatez, Excel est drôlement plus riche, et mieux fait qu'Access à ce niveau.
D'une manière générale, Excel est systématiquement mieux soigné qu'Access. Chez Microsoft, les ventes d'Excel sont incomparablement plus importantes que les ventes d'Access, ce qui explique cet état de fait qui suit une simple logique commerciale.
Nous n'allons pas en faire plus au niveau des formats personnalisés, mais si vous le désirez, consultez cette excellente page.
Nous avons appris à gérer le type de données Monétaire, et nous avons vu qu'il ne s'agit, en fait, que d'une sorte de numérique, mais avec une grande précision. Nous avons éclairci la confusion qui règne entre le type monétaire et le format monétaire.
Nous sommes allés dans le panneau de configuration pour changer l'aspect des types de données monétaires, et nous avons un peu joué avec les formats personnalisés, aidés par Excel.
L'exercice consiste à créer une nouvelle base de données que vous nommerez ExerciceLecon007.accdb.
Vous y créerez une table T_Portefeuille, dans laquelle vous insérerez les champs suivants :
L'affichage de la table devra ressembler à ceci :