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 :

Arrondi sur access 2013


Sujet :

Access

  1. #1
    Candidat au Club
    Femme Profil pro
    retraitée
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Arrondi sur access 2013
    Bonjour,
    Je développe une application dans laquelle je dois établir des factures.
    Lorsque le règlement se fait en plusieurs fois, je veux ajuster le montant de la dernière facture en fonction des arrondis selon la formule suivante :
    dernier règlement = (mt_total - [(mt_total / nbr_reglement) * (mt_total / (nbr_reglement - 1))]
    Cela ne fonctionne pas sous access.
    Merci de m'aider sachant que je ne connais pas SQL.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour

    De quelles valeurs disposes-tu dans l'enregistrement (la ligne) en cours au moment du calcul ?
    • Le montant total ?
    • Le nombre de règlements ?


    Si tu ne disposes pas de ces valeurs, où sont-elles stockées (nom des tables ou requête et des champs) ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Candidat au Club
    Femme Profil pro
    retraitée
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Arrondi sur access 2013
    Bonjour,
    J'ai le montant total et le nombre de règlements dans ma table des factures.
    J'aurai ensuite de 1 à n occurrence(s) par règlement.
    Merci, à+

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Si tu n'as pas à savoir combien de versements ont déjà été faits alors la formule est simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (mt_total - ((mt_total / nbr_reglement) * (mt_total / (nbr_reglement - 1)))
    Les crochets en Access servent de délimiteurs de noms de champs pas comme des parenthèses dans les calculs.

    Si tu as besoin des savoirs combien de versements ont été faits la formule sera plutôt quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mt_total - ((mt_total / nbr_reglement) * DCount("clefFacture":  "tblVersement"; "[ClefFacture]=" & [ClefFacture]))
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Candidat au Club
    Femme Profil pro
    retraitée
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Arrondi sur access 2013
    Merci pour ton aide, mais j’ai mal posé ma question.
    Mon problème n’est pas d’insérer la formule de calcul dans ma requête, mais de déterminer le montant du dernier règlement afin que la somme des règlements soit égale au montant total.
    Exemple :
    Mt_total = 163,72 pour 3 règlements
    Mt_règlement = 163,72/3 = 54,57
    Or : 54,57*3 = 163,71 ==> le dernier règlement doit donc être = à 54,58 pour que la somme des 3 factures correspondantes soit bien de 163,72 et non pas de 163,71.
    (Mt_total est le montant du devis accepté par le client qui ayant choisi un règlement en 3 fois recevra 3 factures dont la somme doit être égale au devis.)
    Le dernier règlement peut être : soit égal aux autres, soit inférieur de 1 centime, soit supérieur de 1 centime.
    Je sais résoudre ce pb dans access.
    Merci, à +

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Les problèmes d'arrondi sont toujours assez délicats. Cela vient du fait que les nombres décimaux ne sont pas représentés dans un ordinateur exactement comme dans un cerveau humain.
    L'ordinateur travaille toujours avec un approximation et parfois cette approximation est exacte.
    Les méthodes pour compenser sont :
    • Travailler avec des nombres autorisant plus de décimales que nécessaires (ex : réel double au lieu de réel simple). Tu as toujours le problème mais il est rejeté sur des décimales plus lointaines.
    • Utiliser des champs de types monétaire (max 4 décimales) mais j'ai entendu dire qu'il y avait des bugs et que par conséquent il ne fallait pas s'en servir :-(.
    • Travailler avec des entiers et diviser pour l'affichage ... ça c'est VRAIMENT pénible.


    sinon tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val(format((mt_total - ((mt_total / nbr_reglement) * (mt_total / (nbr_reglement - 1))); "0.00"))
    le val(format(uneValeur); "0,00") fait un arrondi mathématique. Si tu as une perte des décimales utilises cdbl(format(uneValeur); "0,00").

    Est-ce que tu as le montant de chacun des règlements enregistrés quelque part ?
    Un truc du genre :
    tblReglement
    ClefReglement
    ClefFacture
    MontantRegelement

    Si oui, faire la somme de ces versements individuels et la soustraire du total te donnera sans doute moins de maux de tête.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Candidat au Club
    Femme Profil pro
    retraitée
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Arrondi sur access 2016
    Bonjour, je reprend contact après une petite pause.
    J'ai utilisé le code que tu m'as indiqué :
    calculer le montant des factures : mt_facture:Val(Format([mt_devis]/[nbre_reglement];"Fixe"))
    puis calcul montant dernière facture : [mt_devis]-[mt_facture]*([nbre_reglement]-1)
    ce qui appliqué à l'ex. que j'avais pris : mt_devis = 163,72 --- mt_facture (1 et 2) = 54 --- dernière facture = 55,72.
    Merci beaucoup.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Si tu considère le sujet comme clos, merci d'appuyer sur en bas de discussion.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. access 2013 Regrouper le résultat d'une requete sur une meme ligne
    Par akaramoko dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 27/04/2016, 16h23
  2. [AC-2013] Mise en forme ligne zone de liste sur ACCESS 2013 ?
    Par zkunk dans le forum IHM
    Réponses: 0
    Dernier message: 05/08/2015, 19h17
  3. Réponses: 1
    Dernier message: 05/08/2014, 11h45
  4. [AC-2013] Click sur un treeview ne fonctionne plus Access 2013
    Par JulietteBl dans le forum IHM
    Réponses: 0
    Dernier message: 17/09/2013, 15h37
  5. [AC-2013] Besoin d'aide sur un état sous access 2013
    Par amina69 dans le forum IHM
    Réponses: 1
    Dernier message: 10/07/2013, 07h32

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