Champ calculé

Fermé
remi - 16 juil. 2015 à 16:40
 Tessel75 - 16 juil. 2015 à 22:39
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

Utilisateur anonyme
16 juil. 2015 à 17:01
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
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
Utilisateur anonyme
16 juil. 2015 à 17:18
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
Malheureusement je travaille a distance sur un serveur sécurisé ,je ne peux pas effectuer cette opération
0
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
Utilisateur anonyme
16 juil. 2015 à 17:51
Ne "bricole" pas les formules. Utilise le bon format pour tes champs, tu n'as rien d'autre à faire.
0
Utilisateur anonyme
16 juil. 2015 à 17:49
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
Utilisateur anonyme
16 juil. 2015 à 17:52
Si tu pouvais coller une copie d'écran (un petit morceau) pour prouver chacun des points ci-dessus, ce serait l'idéal.
0
remi@ Messages postés 1 Date d'inscription jeudi 16 juillet 2015 Statut Membre Dernière intervention 16 juillet 2015
16 juil. 2015 à 18:13
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
Utilisateur anonyme
16 juil. 2015 à 19:27
Je t'ai donné une liste en quatre points, pourrais-tu y répondre s'il te plaît ?
0
Utilisateur anonyme
16 juil. 2015 à 20:13
Tu avais répondu dans une autre discussion... pas pratique.
Peux-tu montrer un aperçu de l'état ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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