Champ calculé

Bonjour,

je fais une requete pour imprimer des etats de facturation comme ceci :

Total HT : =Somme([FinalCost]) & " € "
Total TVA : =(Somme([FinalCost])*1,2)-(Somme([FinalCost])) & " € "
Total TTC : =Somme([FinalCost])*1,2 & " € "

les formats de données de ces champs sont : standard ,2 décimales ;

J'obtiens des totaux avec 3 décimales et/ou sans le 0 apres la virgule mais pas sur tous les lignes .

exemples d'aperçu :

Total HT : 52,28 € Total HT : 23 €
Total TVA : 10,456 € Total TVA : 4,6 €
Total TTC : 62,736 € Total TTC : 27,6 €


Comment arrondir pour obtenir 10,45 au lieu de 10,456 et 4,60 au lieu de 4,6 ?

5 réponses

  1. Bonjour

    Si tu as ajouté "& €" dans ta requête, les champs que tu obtiens sont des chaines (textes) et non plus des nombres.
    Mais le format à 2 décimales s'applique aux nombres, pas aux textes. Donc il n'a aucune action sur tes champs.

    Tu ne devrais pas ajouter ce "& €" dans ta requête. Par contre, utilise le format euro pour l'état, tu devrais obtenir l'affichage que tu désires.
    0
    1. Bonjour le pére ,

      j'ai déja essayé cette méthode meme en supprimant & "€" ,qui me sert a afficher le symbole euro juste aprés le résultat, et en mettant le format sur monetaire ou euro cela change rien j'ai toujours 3 decimales .
      c'est curieux
      0
  2. Peux-tu mettre une copie de ta base (en enlevant les données confidentielles) sur cjoint.com (ou autre site à ta convenance) et mettre le lien ici ?
    0
    1. Malheureusement je travaille a distance sur un serveur sécurisé ,je ne peux pas effectuer cette opération
      0
    2. J'ai ajouter Round devant le clacul cela me remet les résulats avec 2 décimales mais j'ai toujours le 0 qui disparait lorsque qu'un total est : 4,50 il apparait 4,5 .

      je cherche
      0
    3. Ne "bricole" pas les formules. Utilise le bon format pour tes champs, tu n'as rien d'autre à faire.
      0
  3. Pour être sûr :
    Tes expressions (Somme([FinalCost]) et autres SANS & "€") sont bien dans une requête
    Ton état utilise bien comme sources de données cette requête ?
    Les champs de ton état ont bien comme source contrôle les champs de ta requête ?
    Les champs de ton état ont bien le format "euro" ?
    0
    1. Si tu pouvais coller une copie d'écran (un petit morceau) pour prouver chacun des points ci-dessus, ce serait l'idéal.
      0
    2. seul le champ FinalCost est stocké sur une base SQL je l'utilise pour calculer la TVA ,le TTC et ensuite les Sommes HT,TVA,TTC.
      0
    3. Je t'ai donné une liste en quatre points, pourrais-tu y répondre s'il te plaît ?
      0
  4. Tu avais répondu dans une autre discussion... pas pratique.
    Peux-tu montrer un aperçu de l'état ?
    0
    1. Bonjour Rémi, Bonjour LePère (que je salue au passage),
      Je me permets d'ajouter mon grain de sel.
      Puisque tu utilises une requête tu n'as aucun intérêt à utiliser des sommes de champs; mieux vaudrait employer des formules directement. Càd:
      (j'énonce les champs)
      PrixTotHT = PrixU * Qté
      TVA = TxTVA * PrixTotHT
      PrixTotTTC = PrixTotHT x (1 + TxTVA )

      Tant que tu n'es pas sur l'état, tu n'as aucunement besoin de te mettre en format monétaire, il suffit de rester en format numérique avec 2 décimales
      Pour l'édition sous forme d'état, tu peux entrer les données directement dans les contrôles que tu as préparés en ajoutant le format d'édition monétaire avec 2 décimales.
      Et pour le total final, il suffit de faire un cumul par groupe avec somme([PrixTotTTC]), si tu t'es débrouillé pour avoir une facture par achat (un achat = plusieurs lignes, comme au supermarché).
      Normalement ça devrait passer.
      Si Access ne veux vraiment pas, tu as encore la ressource de mettre une étiquette "€" derrière tes champs.
      Mais en aucun cas il ne faut mettre ta formule "Round()", qui ne sert à rien sinon alourdir les calculs de ton état à l'édition, et qui sera écrasée par les propriétés de format du contrôle.
      Bonne suite
      0