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

VBA Access Discussion :

Calcul coût VBA Access


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Contrôleur de gestion
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut Calcul coût VBA Access
    Bonjour,

    J'ai créé une base Access afin de mettre en place une méthode ABC dans une entreprise.
    Je rencontre un problème au niveau du calcul du coût de l'inducteur qui doit être le montant des charges / le nombre d'inducteur.
    Toutes ces informations se trouvent dans la table COUT_ACTIVITE.
    J'ai essayé de faire une requête, cependant je rencontre le problème d'un dépassement de capacité.
    Je suis un peu perdu entre les requêtes SQL et le VBA. J'ai un shéma type, il doit y avoir quelque chose qui coince...

    Je vous mets mon fichier Access en PJ
    Merci d'avance pour l'aide
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Quelle version de Access utilises-tu 2007 ou 2010 ?

    Pourrais-tu décrire un peu le calcul que tu fais ?

    Quel est le type des champs utilisés pour tes données numériques, Décimal ? Monaitaire ? Réel Double ?

    Quand et où se produit ton dépassement de capacité ? Sur une somme, une division ?

    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
    Membre averti
    Profil pro
    Contrôleur de gestion
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut
    Bonjour,

    J'utilise ACCESS 2010.

    Le but de mon calcul est de calculer le cout d'un inducteur = montant des charges / nbre inducteurs.
    Toutes ces informations se trouvent dans la table cout_activite.
    Le type de champs utilisé est numérique.
    Je pense que je me plante dans ma requête, j'ai eu quelques formations dessus mais j'ai du mal à le mettre en pratique.
    Je n'ai pas Access sur le poste d'où je vous écris ce message.
    Je pourrais donner plus de précision ce soir.

    En tout cas merci pour votre patience.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour si tu peux poster le SQL de ta requête qui plante cela aiderai.

    De plus je repose ma question sur le type de données car c'est numérique, certe, mais quel type de numérique ?

    • Décimal ?
    • Monaitaire ?
    • Réel Double ?


    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
    Membre averti
    Profil pro
    Contrôleur de gestion
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Par défaut
    Du numérique décimale...
    Voici ma requête...
    Je ne sais pas si cela t'inspire ?

    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
    36
    37
    38
    39
    40
     
    ' ***************************************************************************************
    '           Calcul des coûts inducteurs (unitaires) :  COUT_INDUCTEUR
    ' ***************************************************************************************
     
    Private Sub BTN_MAJ_Click()
     
    Dim db              As Object
    Dim dbws            As Object
     
    Dim req             As String
    Dim Dtreq           As Object
     
    Dim MONTANT_CHARGES      As Double
    Dim NBRE_INDUC        As Double
    Dim COUT_INDUC     As Double
     
     
    Set dbws = DBEngine.Workspaces(0)
    Set db = CurrentDb
     
     
     
     
    'Sélection des champs nécessaires au calcul
    req = "SELECT MONTANT_CHARGES, NBRE_INDUC, COUT_INDUC" & _
          " FROM COUT_ACTIVITES"
     
    Set Dtreq = db.OpenRecordset(req)
     
    ' On lit la première ligne (intitulé des colonnes)
    Dtreq.MoveFirst
    ' Tend que l'on est pas à la fin
    While Not Dtreq.EOF
      'calcul du cout de l'inducteur
        COUT_INDUC = MONTANT_CHARGES / NBRE_INDUC
     
        Dtreq.MoveNext
    Wend
    End Sub

  6. #6
    Membre éclairé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juin 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 53
    Par défaut
    Pas la peine de te fatiguer avec du VBA si tu as toutes les données sous Access.

    Crée une requête "Mise à jour" où tu spécifieras sous ton champ COUT_INDUC de la table COUT_ACTIVITES ta division ie "= [COUT_ACTIVITES].[MONTANT_CHARGES] / [COUT_ACTIVITES].[NBRE_INDUC]"

    Une fois ça fait tu peux enregistrer ta requête, la voir au format SQL et l'insérer dans du code VBA si tu veux utiliser le tout.

    PS : le problème dans ta requête c'est que tu ne fais rien du tout en fait Pour spécifier le champ d'une requête en VBA il faut écrire "Dtreq.[Nom_du_champ]" ou "Dtreq.Fields("Nom_du_Champ")". Ensuite je rajouterais un "Dtreq.Edit" après ton while et un "Dtreq.update" avant le movenext.

    Je suis pas sur de moi, si quelqu'un peut valider ou préciser davantage.

Discussions similaires

  1. [AC-2007] Calcul Recordset VBA ACCESS
    Par comewithme dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/12/2012, 00h12
  2. Réponses: 4
    Dernier message: 21/09/2012, 22h19
  3. [AC-2007] Calcul de coût méthode ABC VBA ACCESS
    Par Tifounette86 dans le forum VBA Access
    Réponses: 15
    Dernier message: 15/06/2012, 19h11
  4. Réponses: 3
    Dernier message: 30/06/2006, 09h41
  5. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

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