Champ calculé

remi -  
 Tessel75 -
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. Utilisateur anonyme
     
    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. remi
       
      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. Utilisateur anonyme
     
    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. remi
       
      Malheureusement je travaille a distance sur un serveur sécurisé ,je ne peux pas effectuer cette opération
      0
    2. remi
       
      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. Utilisateur anonyme
       
      Ne "bricole" pas les formules. Utilise le bon format pour tes champs, tu n'as rien d'autre à faire.
      0
  3. Utilisateur anonyme
     
    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. Utilisateur anonyme
       
      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. remi@ Messages postés 2 Statut Membre
       
      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. Utilisateur anonyme
       
      Je t'ai donné une liste en quatre points, pourrais-tu y répondre s'il te plaît ?
      0
  4. Utilisateur anonyme
     
    Tu avais répondu dans une autre discussion... pas pratique.
    Peux-tu montrer un aperçu de l'état ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Tessel75
     
    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