IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Calcul résultat comptable , 2 décimales [AC-2007]


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Points : 97
    Points
    97
    Par défaut Calcul résultat comptable , 2 décimales
    Bonjour,
    J'ai ces formules dans ma requête TransactionsCaisseTemporaire Requête basée sur ma table TransactionsCaisseTemporaire

    Champ: Montant Transaction
    Champ: SousTotal
    Champ: TPS
    Champ: TVQ
    Champ: TOTAL

    1- MontantTransaction: ([PrixVendant]*[QuantitéVendue2])
    Note: Mon prix vendant a toujours 2 décimales car il n'y a pas de formule sur ce dernier, le champ QuantitéVendue2 n'a aucune décimale.

    2- SousTotal: ([MontantTransaction])
    3- TPS: ([SousTotal])*5/100
    4- TVQ: ([SousTotal]+[TPS])*7,5/100
    5- TOTAL: ([SousTotal]+[TPS]+[TVQ])

    Les calculs ne posent aucun problème

    J'ai ensuite une requête-ajout qui prend le résultat et la copie dans les champs du même nom de ma table TransactionsCaisseFacture.

    Le problème est que peu importe le format que j'utilise dans ma table, j'ai toujours 3 décimales après le point. Comment puis-je n'en avoir que deux tout en respectant l'équation que TOTAL=SousTotal+TPS+TVQ sans différence de (0.01 $)
    Voir résultat ci-dessous avec formules et les différences

    SousTotal TPS TVQ TOTAL Différence
    119,94 $ 6,00 $ 9,45 $ 135,38 $ (0,01 $)
    13,16 $ 0,66 $ 1,04 $ 14,85 $ (0,01 $)
    8,97 $ 0,45 $ 0,71 $ 10,12 $ (0,01 $)
    17,98 $ 0,90 $ 1,42 $ 20,29 $ (0,01 $)



    J'espère avoir été assez explicite,

    Merci d'avance
    Un Québecois qui espère beaucoup

    Claude

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    Quelques réflexions en vrac :
    - faut-il vraiment écrire le total dans la base ? Si tu le recalcule à chaque fois il n'y aura plus d'écart
    - tu dois utiliser round(x,2) dans tes calculs pour que TPS et TVQ n'aient que 2 décimales, c'est la règle donnée par le fisc - au moins en France mais comme c'est un français qui a inventé toutes ces taxes il a dû faire école aussi sur les règles d'arrondi
    - les champs sont-ils stockés comme réels simples ou doubles ? Pour ma part j'ai moins de problèmes d'arrondi depuis que tout est en réel double car access calcule en réel double par défaut

    L'espoir fait vivre
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    faut-il vraiment écrire le total dans la base
    Tout à fait d'accord avec nico84 à moins d'avoir un historique à gérer

    les champs sont-ils stockés comme réels simples ou doubles ?
    Et pourquoi ne pas utiliser un format Monétaire tout simplement
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Points : 97
    Points
    97
    Par défaut Merci, mais...
    Le format monétaire, même si j'inscris 2 décimales retourne toujours 3 décimales, d'où mon problème. Il est également important que je conserve un historique et même avec Réel double, j'ai toujours 3 décimales. Tant qu'à la fonction Round, peut-tu me donner un exemple ou l'applliquer, en VBA? ou dans la table en mode création? et dans quel champ l'inscrire.

    Merci pour votre aide.

  5. #5
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut

    Citation Envoyé par toumack Voir le message
    Le format monétaire, même si j'inscris 2 décimales retourne toujours 3 décimales, d'où mon problème.
    Pourtant tu peux indiquer dans les propriétés le nombre de décimales souhaitées
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Voila un exemple d'arrondi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT PrixVendant, QuantitéVendue2, 
    [PrixVendant]*[QuantitéVendue2] AS MontantTransaction,
    MontantTransaction AS SousTotal, 
    Round([SousTotal]*5/100, 2) AS TPS,
    Round(([SousTotal]+[TPS])*7.5/100, 2) As TVQ,
    [SousTotal]+[TPS]+[TVQ] As Total
    FROM LaTable;
    Remarque : Pour des valeurs exactes, il vaut mieux éviter les champs de type réel (simple ou double), en particulier pour PrixVendant.
    Préférer le type monétaire (4 décimales) ou le type Numérique Décimal (nombre de décimales à définir avec la propriété Echelle).

    A+

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut nico84, Jeannot45, LedZeppII et bienvenu toumack,

    juste qq remarques en passant:

    attention au round() Pb arrondi
    limiter le nombre de décimal peut avoir des inconvénients...
    pourquoi pas utiliser le format du contrôle qui l'affichera?


  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 106
    Points : 97
    Points
    97
    Par défaut Super, çà fonctionne
    Merci à tous pour votre aide, LedZeppII, vodiem, nico84 et Jeannot45 pour votre participation.
    En prenant les conseils de tous et de chacun, voici la solution à mon problème
    Dans ma requête: TransactionsCaisseTemporaire Requête

    MontantTransaction: Round([PrixVendant]*[QuantitéVendue2];2)
    SousTotal: ([MontantTransaction])
    TPS: Round([SousTotal]*5/100;2)
    TVQ: Round(([SousTotal]+[TPS])*7,5/100;2)
    TOTAL: ([SousTotal]+[TPS]+[TVQ])

    Et tout fonctionne à merveille

    Encore un autre problème résolu, je ne veux pas être pessimiste, mais à la prochaine...lol

    Claude

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calculer résultat en pourcentage
    Par nabil123456 dans le forum MySQL
    Réponses: 2
    Dernier message: 02/04/2015, 10h00
  2. [WD17] Calcul résultat de 2 colonne pour chaque ligne dans une table
    Par magicien33 dans le forum WinDev
    Réponses: 5
    Dernier message: 09/09/2013, 11h28
  3. [MySQL] calcul résultat requête
    Par GYooo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/03/2009, 13h10
  4. champ calculé résultat pas correct
    Par mulanzia2003 dans le forum Requêtes et SQL.
    Réponses: 24
    Dernier message: 16/08/2007, 14h13
  5. Problème de calcul : Résultat incorrect.
    Par Nico-xs dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/10/2006, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo