ACC2000 : Arrondi ou tronquer les valeurs de devise pour le nombre prévu de décimales

Numéro d'article: 210564 - Voir les produits auxquels s'applique cet article
Modéré : Nécessite macro base, de codage et les compétences de l'interopérabilité.

Cet article s'applique à une base de données Microsoft Access (.mdb) et à un projet Microsoft Access (.adp).

Agrandir tout | Réduire tout

Sommaire

Résumé

La propriété format d'un contrôle est recommandé d'arrondir un champ de type numérique ou monétaire au nombre de décimales souhaité. Toutefois, cela ne modifie pas les données sous-jacentes, pouvant contenir des chiffres supplémentaires du contrôle n'affiche pas. Si vous ajoutez les valeurs dans ce contrôle, la somme est basée sur les valeurs réelles et pas sur les valeurs affichées. Ce comportement peut rendre le total sembler inexacte.

Cet article montre comment créer deux fonctions définies par l'utilisateur à tronquer les données à deux décimales afin que la valeur affichée et mise en forme et les données numériques ou monétaires soient identiques. Il montre également comment utiliser la fonction Round() intégrée pour arrondir les données pour le nombre de décimales souhaité.

Plus d'informations

Si vos données ont plus de deux chiffres après la virgule décimale, vous pouvez arrondir le résultat avec deux décimales ou tronquent le nombre après deux chiffres après la virgule sans arrondir. Pour mettre en forme les données, afin que la valeur réelle et la valeur affichée à la fois deux décimales (en particulier pour devise), vous pouvez utiliser une des fonctions suivantes dans la propriété Après mise à jour des objets de contrôle de formulaire ou dans des expressions et les contrôles calculés de formulaires et rapports.

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie expresse ou implicite. Cela inclut, mais n'est pas limité à, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous aider à comprendre la fonctionnalité d'une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.
Attention : Si vous suivez les étapes de cet exemple, vous modifier la base de données Comptoir.mdb. Vous souhaiterez peut-être sauvegarder le fichier Comptoir.mdb et suivre ces étapes sur une copie de la base de données.

Méthode 1: Fonctions pour les utiliser dans la propriété de mise à jour après des contrôles de formulaire

Tronquer une valeur à deux décimales

Pour tronquer des nombres avec deux décimales lors de l'entrée de données, procédez comme suit :
  1. Démarrez Microsoft Access et ouvrez la base de données Comptoir.mdb ou l'exemple de projet NorthwindCS.adp.
  2. Créez un nouveau module et tapez les fonctions suivantes :
    '******************************************************
    ' Declarations section of the module
    '******************************************************
    
    Option Explicit
    Const Factor = 100
    
    '=====================================================
    ' TruncAU is designed to be added to the
    ' AfterUpdate property on a form control.
    '=====================================================
    
    Function TruncAU(X As Control)
       X = Int(X * Factor) / Factor
    End Function
    					
  3. Dans le menu fichier, cliquez sur Fermer et retourner à Microsoft Access.
  4. Ouvrez le formulaire produits en mode Création et ajoutez la fonction Visual Basic TruncAU() à la propriété AfterUpdate du champ prix unitaire :
    AfterUpdate : =TruncAU([UnitPrice])

Une valeur à deux décimales d'arrondi

Pour arrondir à deux décimales lors de l'entrée de données, procédez comme suit :
  1. Démarrez Microsoft Access et ouvrez la base de données Comptoir.mdb ou l'exemple de projet NorthwindCS.adp.
  2. Ouvrez le formulaire produits en mode Création et ajoutez la fonction Visual Basic Round() à la propriété AfterUpdate du champ prix unitaire :
    AfterUpdate : =Round([UnitPrice],2)
    Si vous tapez accidentellement 23.055 $ au lieu de $ 23,05, la fonction TruncAu() intercepte l'erreur et modifie la valeur en dollars 23,05. Si vous utilisez la fonction Round() au lieu de cela, la fonction modifie la valeur à 23.06 $. Si vous utilisez aucune fonction, la valeur s'affiche comme $ 23.06, mais la valeur entrée, $ 23.055, est utilisée dans des calculs.

Méthode 2: Fonctions pour utilisation dans les expressions et des contrôles de calcul dans les formulaires et rapports

Tronquer les numéros pour deux décimales dans le pied de groupe d'un rapport, procédez comme suit :
  1. Démarrez Microsoft Access et ouvrez la base de données Comptoir.mdb ou l'exemple de projet NorthwindCS.adp.
  2. Créez un nouveau module et tapez les fonctions suivantes :
    '******************************************************
    ' Declarations section of the module
    '******************************************************
    
    Option Explicit
    Const Factor = 100
    '=====================================================
    ' TruncCC is designed to be used in
    ' expressions and calculated controls on forms and reports.
    '=====================================================
    
    Function TruncCC(X)
       TruncCC = Int (X * Factor) / Factor
    End Function
    					
  3. Dans le menu fichier, cliquez sur Fermer et retourner à Microsoft Access.
  4. Ouvrez l'état Récapitulatif des ventes par année en mode Création et modifiez les suivant deux zones de texte des pieds de page groupe de l'état avec les propriétés suivantes :
    Nom contrôle : QuarterSales
    SourceContrôle : =Sum(TruncCC([SubTotal]))

    Nom contrôle : YearTotal
    SourceContrôle : =Sum(TruncCC([SubTotal]))
    Si vous utilisez Round(), le rapport additionne les valeurs qui sont affichées dans le rapport, même si les valeurs réelles peuvent contenir des chiffres masqués.
Remarque : pour modifier le nombre de décimales qui utilisent les fonctions, ouvrez le module contenant les fonctions de troncature et modifiez la valeur de la constante global facteur comme suit :
placer 10 = 1 décimal
100 = 2 décimal place
1000 = 3 décimales, etc.

Limitations

Les fonctions définies par l'utilisateur doivent uniquement servir avec des données de devise. Si utilisé avec les nombres double ou Single, il se peut que vous receviez encore des erreurs d'arrondi mineures. La raison en est que les numéros Single et double sont à virgule flottante. Ils ne peut pas stocker une représentation binaire exacte de fractions décimales. Par conséquent, il est toujours une erreur. Toutefois, les valeurs de devise sont des entiers à l'échelle et peuvent stocker une représentation binaire exacte des fractions à quatre décimales.

Propriétés

Numéro d'article: 210564 - Dernière mise à jour: jeudi 23 juin 2005 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2000 Standard Edition
Mots-clés : 
kbmt kbhowto kbinfo kbprogramming kbusage KB210564 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 210564
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires