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 :

affecter valeur à un champ à partir de la valeur d'un champs calculé [AC-2007]


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
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Par défaut affecter valeur à un champ à partir de la valeur d'un champs calculé
    Bonjour,

    Dans un formulaire j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub champ1_AfterUpdate()
    If champs1.Value = "2" Then
    champs2= "60"
    End If
    End Sub
    Alors si le champs 1 est du type champs à renseigner par saisie ça fonctionne mais :

    si le champ1 est un champ calculé le code ne fait rien.

    Aves-vous une idée comment adapter le code pour que ça fonctionne ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 178
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub champ1_AfterUpdate()
    If me.champs1 = 2 Then
    me.champs2= 60
    End If
    End Sub
    ou en effectuant un calcul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub champ1_AfterUpdate()
    If me.champs1 = 2 Then
    me.champs2= me.champs1 * me.champs3 'par exemple
    End If
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Par défaut
    Je vous remercie pour les rectifications dans la syntaxe. Mais le code reste muet. Je détail la nature du champs1 :

    le champs 1 est obtenu par une formule saisie dans la source de contrôle du champs 1 : =[H M1]/[Dt M1]

    Est-ce que ça vous donne d'autres idées ? Faut-il utiliser AfterUpdate sachant qu'il y a cette formule?

    Merci

  4. #4
    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.

    Tu pourrais utiliser plutôt l'évènement AfterUpdate du contrôle "H M1" ET du contrôle "Dt M1". En fait de tous les contrôles utilisés dans le calcul.

    Cordialement,

    PGZ

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Par défaut
    Excellent ça marche ; merci !!

    Si je veux multiplier les conditions avec des intervales par exemple :
    si champs1<2 attribuer la valeur 30
    si champs1 >=2 et <3 attribuer la valeur 60
    comment formulerez-vous cette succession de conditions avec des intervales ?

    Merci pour votre aide

  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
    Hello.

    Pour répondre à ta nouvelle question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Select case me.Champ1.value
        Case Is < 2
            Me.Champ2 = ...
        Case 2 to 2.999999
            ...
        Case 3 to 3.999999
            ...
        ...
     
        Case is >= 12
            ...
    End select
    Sinon tu pourras être + précis avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Me.Camp1.Value < 2 then
        ...
    ElseIf (Me.Champ1.Value >= 2) And (me.Champ1.Value <3) Then
        ...
    Cordialement,

    PGZ

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

Discussions similaires

  1. Copier un champ à partir d'une valeur recherchée
    Par gilou41 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/06/2013, 09h29
  2. Réponses: 14
    Dernier message: 28/06/2010, 16h49
  3. [XL-2000] Remplir une valeur dans cellule à partir d'une valeur precise d'un fichier texte
    Par cactus666 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/01/2010, 10h31
  4. [AC-2003] Insertion champ à partir du filtrage de 2 autres champ
    Par delorvallois dans le forum Modélisation
    Réponses: 6
    Dernier message: 13/10/2009, 17h17
  5. Réponses: 8
    Dernier message: 10/10/2006, 10h58

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