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 :

mise a jour champ calculer qui est stock


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut mise a jour champ calculer qui est stock
    bonjour

    je joint ma base pour que vous regarde mon probleme
    je realise un calcul par rapport a une valeur saisie dans le champ "MONT_RATIO_MARCHE_SIGNE_ESTIM" ( en rouge dans le formulaire) le calcul est donc réasilé et est stock dans le champ "MONT_ESTIM"

    Mon probléme est que ci on modifier une valeur dans le formulaire de dessu les calcul ne sont pas mis a jours (normal car la valeur est stock) je souhaite donc réaliser cette mise a jour sur changement des valeurs qui sont en haut SHAB ou SHON ou Surf Planté....

    je joint la base je l'avai oublie desole pour l'arondi j'ai trouve mais pas le reste

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Par défaut
    Bonjour,

    J'ai essayé de regarder ta base et ton probleme mais je dois avouer que j'ai du mal à te comprendre.

    Tu dis que tu fait un calcul mais tu n'explique pas ou ce calcul se fait actuellement dans ta bdd.

    Sinon pour résoudre ton probleme, je suppose qu'il suffit de faire appel à une procédure sur l'évenement "Apres MAJ" des 2 zones qui servent au calcul de ta zone calculée.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    le calcul ce fait dans "MONT_RATIO_MARCHE_SIGNE_ESTIM" ( en rouge dans la base) en VBA sur sur APRES MAJ

    tu a trouve ? comment je peux faire alors?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Par défaut
    Ok donc sur le "apres maj" de MONT_RATIO_MARCHE_SIGNE_ESTIM, le calcul se déclenche.

    Ce calcul dépend de bcp d 'autres zones. Donc la solution la plus basique consiste à mettre le calcul dans une procédure indépendante et de faire appel à cette procédure dans le "Apres Maj" de toutes les zones dont dépent le calcul.

    déclaration d'une procédure
    tu crée un module et tu y met la procédure :
    public sub Nom_de_ma_procédure
    {reprise de la formule de calcul)
    end sub

    Dans tous les "Apres Maj" des zones concernées : Call Nom_de_ma_procédure()

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    j'ai crée un module et dedans j'ai mis sa

    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
    41
    Public Sub CALCUL_ESTIM()
    Select Case Me.[NUM_TYPE_RATIO]
            Case 1
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SHOB] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 2
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SHAB] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 3
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SURF_COUVERTURE] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 4
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SURF_VRD] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 5
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [Nb_LOGEMENT] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 6
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [NB_PACK_SS] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 7
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [NB_PACK_EXT] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 8
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [NB_PACK_COUV] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 9
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SURF_ETANCHEE_INACE] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 10
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SURF_ETANCHEE_ACCECI] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 11
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SURF_ETANCHEE_VEGETA] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 12
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [SURF_PLANTEE] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 13
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [METRE_1] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 14
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [METRE_2] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 15
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [METRE_3] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 16
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [METRE_4] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case 17
            Me.[MONT_ESTIM] = Round(([MONT_RATIO_MARCHE_SIGNE_ESTIM] * [METRE_5] * [Forms]![estimation d une new operation]![Periode_ESTIM] / [INDICE]), 2)
            Case Else
            Me.[MONT_RATIO_MARCHE_SIGNE_ESTIM] = 0#
     
            End Select
    End Sub
    sur une zone ou on saisie une valeur j'ai mis sur APRES MAJ

    Private Sub MONT_RATIO_MARCHE_SIGNE_ESTIM_AfterUpdate()
    Call CALCUL_ESTIM
    End Sub

    maintenant quand je modifier la valeur il me marque erreur de compilation :

    j'ai essai d enleve les ME. et tout les [ ou ] la il n'y a plus erreur mais le calul ne va pas ce mettre dans le champ MONT_ESTIM que faire??

    j'ai joint la nouvelle base de test

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 745
    Par défaut
    merci pour ta reponse mais je ne comprend rien je débute tout juste aide moi plus stp
    repond moi tu ai le seul a repondre

  7. #7
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Salut,

    Je viens juste de regarder ta base.

    Ca ne pourra pas fonctionner comme ça. D'abord pour retourner une valeur, tu dois utiliser une fonction.

    Ensuite, pour faire ton calcul, tu fais référence à divers champs de ton formulaire.

    Comme tu es dans un module indépendant, tu dois déclarer entièrement le champs (tu ne peux pas utiliser Me.).

    Mon seul conseil : à l'entrée de ta procédure tu mets :

    Debug.Print Forms!Tonformulaire!TonChamps, puis un point d'arrêt, et tu regardes dans la fenêtre d'exécution que ta procédure recoive bien la bonne valeur.

    Et ainsi de suite...

    Sinon, tu ne t'en sortiras pas

    Domi2

Discussions similaires

  1. Mise à jour champs calculés dans formulaire
    Par cluster26 dans le forum IHM
    Réponses: 1
    Dernier message: 18/05/2011, 21h00
  2. requete de mise a jour champ date nul
    Par popofpopof dans le forum Access
    Réponses: 3
    Dernier message: 26/05/2007, 16h10
  3. TRIGGER - mise a jour champ de la table declencheur
    Par jane_ng dans le forum Oracle
    Réponses: 1
    Dernier message: 17/06/2006, 19h12
  4. recuperer valeur liste deroulante + mise a jour champs input
    Par dj_kyl dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/03/2006, 18h42
  5. [VB6] Ajouter numero à champ table qui est en numautomatique
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 31/01/2006, 11h14

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