Champ calculé
remi
-
Tessel75 -
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 ?
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
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.
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.
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 ?
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" ?
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" ?
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
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
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