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 :

traitement de données


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 35
    Par défaut traitement de données
    j'ai par exemple, dans une table, un champ "heures" et un champ "cout horaire". Est il possible de les multiplier et de remplir un autre champ "prix de revient"?

    J'essaie de faire ca avec des recordsets mais ca ne marche pas:



    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
    Dim oRst As Recordset
        Dim oRst1 As Recordset
        Dim Hrs As Long
        Dim CtHor As Long
     
     
        Dim oDb As Database
        Set oDb = CurrentDb
        Set oRst = oDb.OpenRecordset("select CoutHor,Heures,tot from Interventions", dbOpenDynaset)
     
        oRst.Edit
        Hrs = oRst.Fields("Heures")
        CtHor=oRst.Fields("CoutHor")
        oRst.Fields("tot").Value = Hrs * CtHor
        oRst.Update
        oRst.Close
        oRst1.Close

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Si
    ca ne marche pas
    , ça fait quoi?

    Parce qu'avec le bout de code que tu donnes, le calcul devrait se faire mais sur un seul enregistrement.
    Si tu utilises la bibli DAO, des déclarations explicites sont préférables, comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim oRst as DAO.Recordset
    Bon courage,

    PGZ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 35
    Par défaut
    De fait... Pour expliquer le problème, j'ai changé un peu le code pour que ce soit plus compréhensible et j'ai corrigé mon erreur...

    Par contre, ca marche à moitié, car il n'actualise pas la valeur instantanément dans le formulaire où je fais le calcul (par un clic sur bouton).
    Certaines fois, après fermeture puis ouverture (je crois), la valeur correcte apparait, mais je ne comprend pas pourquoi.

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Dans le bouton qui fait le calcul, il faut ajouter le code:
    Me.Requery
    pour rafraichir les données affichées par le formulaire

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 35
    Par défaut
    ca va beaucoup mieux, mais quand je modifie par exemple mon champ "CtHor", ensuite j'appuie sur tab pour passer au champ suivant et valider ce que j'ai écris. Si à ce moment je clique sur le bouton pour faire le calcul, et son action est de placer le curseur sur le premier champ de mon formulaire (c'est la date et elle clignote alors en noir). Si je re-appuie sur le bouton, ca marche...

    Il y a une explication?

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re.

    Il y a 2 pb apparents:
    1. il est inutile d'avoir un champ ("tot") égal au produit de 2 autres.
    2. Pourquoi utiliser DAO pour un calcul simple dans un formulaire.

    ==>Supprimer le champ Tot de la table, dans le formulaire placer un cotrôle "CoutTotal" calculé = CtHor * NbH

    Mas ce n'est qu'un avis.

    PGZ

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 35
    Par défaut
    Et comment puis je faire alors pour envoyer le résultat obtenu dans mon contrôle vers un champ dans une table ?

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

Discussions similaires

  1. [MySQL] PB traitement de données !
    Par Tr@nkill dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/04/2006, 11h36
  2. [Formulaires] Traitement des données dans une autre page...
    Par sekiryou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/03/2006, 09h08
  3. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06
  4. traitement des données avant envoie dans MySQL
    Par italiasky dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 07/02/2006, 22h50
  5. Programmation pour traitement de données
    Par benbois dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 19/10/2005, 17h01

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