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

Requêtes et SQL. Discussion :

Calcul à partir d'un barème [AC-2013]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Points : 44
    Points
    44
    Par défaut Calcul à partir d'un barème
    Bonjour à tous,

    Je souhaiterais savoir si on peut utiliser un barème dans le générateur d'expression pour un champs calculé.
    Sinon est-on obligé de recourir à une requête, et dans ce cas comment peut-on la mettre en place ?

    Voici le barème en question : un taux est applicable selon une tranche de prix
    - 0 jusqu'à 750 euros
    - 4% pour la tranche du prix jusqu’à 50 000 euros
    - 3% pour la tranche du prix comprise entre 50 000,01 euros et 200 000 euros
    - 1% pour la tranche du prix comprise entre 200 000,01 euros et 350 000 euros
    - 0.5% pour la tranche du prix comprise entre 350 000,01 euros et 500 000 euros
    - 0.25% pour la tranche du prix excédant 500 000,01 euros.
    Le montant est plafonné à 12 500 euros, soit un prix excédant 2000000 euros

    Sur Excel j'utilisais la fonction Si avec beaucoup d'éléments imbriqués, mais lorsque je le transpose sur Access la taille du générateur d'expression est trop petite pour contenir toute ma formule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VraiFaux([droitdesuite]=Non;0;VRAIFAUX([montantTTC]>2000000;12500; VRAIFAUX([montantTTC]> 500000;8750+([MONTANTTTC]-500000)*0,0025;VRAIFAUX([MONTANTTTC]>350000;8000+([MONTANTTTC]-350000)*0,005; VRAIFAUX([MONTANTTTC]>200000;6500+([MONTANTTTC]-200000)*0,01 ; VRAIFAUX([MONTANTTTC]>50000;2000+([MONTANTTTC]-50000)*0,03; VRAIFAUX([MONTANTTTC]>=750;[MONTANTTTC]*0,04;0))))))))

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Question de maintenance, j'utiliserais la fonction correspondante enregistrée dans un module (à adapter bien sûr) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Public Function calculBaremeIf(prPrix As Double) As Double
    Dim Bareme As Double
    If prPrix <= 750 Then
        Bareme = 0.05
        ElseIf prPrix <= 50000 Then
            Bareme = 0.04
            ElseIf prPrix <= 200000 Then
                Bareme = 0.03
                ElseIf prPrix <= 350000 Then
                    Bareme = 0.01
                    ElseIf prPrix <= 500000 Then
                        Bareme = 0.005
                        ElseIf prPrix <= 1000000 Then
                            Bareme = 0.0025
    Else
        Bareme = 0
    End If
    calculBaremeIf = Bareme
    End Function
    Cordialement.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Il y aurait une autre approche.
    Créer une tbl palier avec 2 valeurs d'entrée et une valeur de sortie
    bMin / bMax / bareme
    Et à l'aide d'une req, calculer le bareme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RechDom("bareme";"tblPalier";"" & Int([Montant]) & " Between bMin And bMax")
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Points : 44
    Points
    44
    Par défaut
    Merci pour votre aide.
    Malheureusement je n'ai pas réussi à utiliser ces solutions, j'ai encore beaucoup de choses à apprendre pour réussir utiliser ACCESS correctement.
    - Pour la première solution, je ne sais pas où saisir le code pour que cela fonctionne
    - Pour la seconde, j'ai essayé d'utiliser la formule mais sans succès. Je dois faire une erreur quelque part.

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    - le code de madefemere est à copier/coller dans un module standard dans l'environnement vba
    - en pj un exemple avec tbl palier (à adapter selon ton ihm)
    Fichiers attachés Fichiers attachés
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Points : 44
    Points
    44
    Par défaut
    Merci beaucoup, j'ai réussi avec la formule.
    Mon erreur était due au fait que j'avais affiché la table avec le barème, mais comme elle n'a pas de relations avec les autres tables de la requête, cela générait une erreur. Or la formule permet d'aller rechercher l'information sans que la table n’apparaisse dans la requête.

    Encore un problème résolu grâce à vous.

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

Discussions similaires

  1. calcul à partir de plusieur champs et affichage du resultat dans un champ
    Par carmen256 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 24/05/2006, 11h47
  2. [MySQL] Affichage d'un résultat calculé à partir d'une bd
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 31/01/2006, 16h40
  3. Calcul à partir d'une table
    Par Didi17 dans le forum Access
    Réponses: 1
    Dernier message: 28/10/2005, 08h37
  4. Réponses: 2
    Dernier message: 03/10/2005, 10h09
  5. Calcul à partir des résultats d'une requète
    Par Sendo dans le forum Access
    Réponses: 1
    Dernier message: 29/09/2005, 17h46

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