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 :

Calcul automatique d'un montant avec minimum et maximum [AC-2010]


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 59
    Points
    59
    Par défaut Calcul automatique d'un montant avec minimum et maximum
    Bonjour

    J'ai créé 2 tables :
    Une table "T_Prestations" préremplie et dont les champs sont les suivants:
    1-CodePrestation
    2-PrixUnitaire (€)
    3-Min_a_payer
    4-Max_a_payer

    Une table "T_Calcul" dont les champs sont les suivants:
    1-Id_Number
    2-NomClient
    3-CodePrestation
    4-Quantité (Tonne)
    5-Montant (€)

    Les 4 premiers champs sont introduits par l'utilisateur

    J'aimerai bien à ce que le champ "Montant" de la table "T_Calcul" soit calculé automatiquement selon le "CodePrestation" en multipliant la valeur du champ "Quantité" de la table "T_Calcul" avec celle du champ "PrixUnitaire" de la table "T_Prestations" en tenant en compte des champ "Min_a_payer" et "Max_a_payer"

    Exemple: Si
    "PrixUnitaire" = 50
    "Min_a_payer" = 300
    "Max_a_payer" = 2000
    Si "Quantité" multiplié par "PrixUnitaire" < "Min_a_payer" : Le "Montant" = 300
    Si "Quantité" multiplié par "PrixUnitaire" > "Max_a_payer" : Le "Montant" = 2000

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    redojackson bonjour,

    je pense que ce code inséré dans une procédure vba (evenement sur clic d'un bouton par exemple) devrait répondre à tes attentes :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    If Nz(Me.CodePrestation, "") = "" Then
        MsgBox "le code prestation n'a pas été renseigné"
        Exit Sub
    End If
    '
    If Nz(Me.Quantite, 0) = 0 Then
        MsgBox "la quantité n'a pas été renseignée"
        Exit Sub
    End If
    '
    Dim dblPrix As Single
    Dim rst As DAO.Recordset
    '
    ' Requêtepermettant d'extraire les champs servant aux calculs avec condition sur codeprestation
    '
    Set rst = CurrentDb.OpenRecordset( _
      "SELECT [PrixUnitaire],[Min_a_payer],[Max_a_payer] FROM [T_Prestations] WHERE [CodePrestation] = '" & Me.CodePrestation & "'", _
      dbOpenSnapshot)
    dblPrix = rst("PrixUnitaire")
    '
    ' application des règles de calcul
    '
    If dblPrix * Me.Quantite <= Val(rst("Min_a_payer")) Then
        Me.Montant = Val(rst("Min_a_payer"))
    Else
        If dblPrix * Me.Quantite >= Val(rst("Max_a_payer")) Then
            Me.Montant = Val(rst("Max_a_payer"))
        Else
            Me.Montant = dblPrix * Me.Quantite        ' compris entre min et max on applique la formule de calcul
        End If
    End If
    '
    rst.Close
     
    Set rst = Nothing
    Pour récupérer un seul champ, le code du Recordset est un peu long. Mais s’il faut lire plusieurs valeurs, les performances seront meilleures qu’avec une suite de DLookup. Dans notre cas trois valeurs sont à récupérer (prixunitaire, prixmin et prixmax).

    La base exemple ici (le formulaire F_calculs permet de réaliser tes simulations) : prestations.zip

    bonne continuation

    jimbolion

  3. #3
    Membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 59
    Points
    59
    Par défaut Calcul automatique d'un montant avec minimum et maximum
    Merci infiniment jimbolion

    Vous m'avez facilité la vie


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

Discussions similaires

  1. [AC-2007] Calculer automatiquement avec un code VBA
    Par yankd dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/09/2012, 09h23
  2. calcul automatique du montant d'un article
    Par mouna01 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/12/2009, 10h47
  3. calcul automatique du montant restant
    Par biologiste dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/06/2008, 22h00
  4. calcul automatique avec select
    Par maysa dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/06/2007, 16h22
  5. [MySQL] Formulaire de réservation avec calcul automatique
    Par mluce dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/03/2007, 13h46

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