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 :

mise à jour d'un champ à partir d'un autre


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut mise à jour d'un champ à partir d'un autre
    bonjour,
    ne maitrisant pas du tout la programmation VBA, je vous soumet mon problème :
    je travaille sous access 2003 et j'ai créé une base de données comportant 3 tables liées entre elles (salariés, expositions, risques). j'ai créé un formulaire "salariés" contenant un sous formulaire "expositions". dans ce dernier, je désire, aprés validation d'un champ sur la nature de l'exposition, mettre à jour un champ numérique de mon formulaire "salariés" avec une donnée de la table "risques" correspondant à la nature de l'exposition (sous-formulaire "expositions"). cette mise à jour doit être conditionnée au fait que la valeur numérique est inférieure à celle déjà présente dans ce champ.

    un coup de main ne serait pas de trop, en espérant que mon explication est compréhensible.
    merci d'avance pour votre aide précieuse.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour et Bienvenue,
    Citation Envoyé par gravia Voir le message
    en espérant que mon explication est compréhensible.
    On va voir si j'ai un degré de compréhension développé...

    Récapitulatif:
    Formulaire au sommet(Le principal) : frm_Salaries
    qui posséde un champ de la table "risque"-->Numérique (Qu'on baptise :txt_risque)

    Sous formulaire : Sub_frm_Exposition avec un champ :NatureExposition
    Ce dernier se devrait d'être une liste déroulante-->cbo_NatureExposition
    avec une colonne correspondant à la valeur numérique recherchée genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT tbl_Expositions.Id_Exposition,
              tbl_Expositions.Risque,
              tbl_Expositions.Degré
    FROM tbl_Expositions;
    Ce qui permet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub cbo_NatureExposition_AfterUpdate()
        If Me.Parent!txt_risque < Me.cbo_NatureExposition.Column(2) Then
           Me.Parent!txt_risque = Me.cbo_NatureExposition.Column(2)
        End If
    End Sub
    Cordialement.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    je te remercie pour ta réponse. pourtant j'ai des rectifications à faire sur la façon dont mon formulaire est réalisé.
    le formulaire principal est bien "salariés" basé sur une table qui comporte un champ "délai" qui dépend du "risque" (les champs "risque" et "délai" sont présents également dans une table nommée "risques").
    le formulaire principal contient un sous formulaire "expositions" basé sur une table "expositions" contenant un champ "n° risque". le sous formulaire possède une liste déroulante qui permet de saisir les "n° risque"
    voici ce que je désirerai obtenir :
    lorsque pour un salarié donné, je saisis un "n° risque", une recherche soit réalisée dans la table "risques" pour inscrire la valeur du "délai" de la table "risques" correspondant au "n° risque" dans le champ "délai" du formulaire "salariés".
    je sais c'est tarabiscoté, mais bon.

    n'hésite pas s'il reste des doutes.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,

    Puisqu'une union existe entre "n° risque" et valeur du "délai" de la table "risques", pourquoi ne pas l'inscrire directement dans la liste déroulante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT tbl_Expositions.Id_Exposition, 
           tbl_Expositions.Risque, 
           tbl_risques.Délai
    FROM tbl_risques INNER JOIN tbl_Expositions
     ON tbl_risques.Id_Risque = tbl_Expositions.Degré;
    Il faut éviter, si possible, d'aller chercher les informations aux 4 coins de la base. La conception est en partie dévolue à cet effet.

    Cordialement.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    encore merci de ton aide.

    la liste déroulante de mon sous formulaire "expositions" est bien basée sur une requête, celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Risques].[N° risque], [Risques].[Intitulé du risque] FROM [Risques];
    la colonne affichée est "intitulé du risque" et la colonne liée est "n° risque".
    lorsque j'ai saisi le "n° risque", je voudrai que le délai (champ de la table "risques") correspondant à celui-ci, soit placé dans une zone de texte "délai" de mon formulaire principal.
    concernant les relations entre mes tables, elles sont définies entre "salariés" et "expositions" (champ "n° salarié"), et entre "expositions" et "risques" (champ "n° risque").

    cordialement.

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    merci pour la tentative avortée.

    bel effort, mais j'ai trouvé plus simple.


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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2014, 12h46
  2. Réponses: 9
    Dernier message: 23/11/2010, 10h10
  3. Mise à jour automatique de champs à partir d'autres champs
    Par Heytabernak dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/10/2008, 14h56
  4. Réponses: 6
    Dernier message: 29/06/2006, 14h00
  5. Réponses: 5
    Dernier message: 06/01/2005, 12h07

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