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

IHM Discussion :

mise a jour de listes déroulantes liées


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut mise a jour de listes déroulantes liées
    Bonjour.

    je travaille sur un projet AC2007, malheureusement j'ai un petit problème de mise à jour de mes listes déroulantes.

    d'une part, je dispose d'une table nommé tbl_emetteur.
    elle contient entre autres 2 variables: nom_emetteur et poste_emetteur.
    ex de la table.
    nom_emetteur; poste emetteur
    DUPONT; ouvrier
    DUPONT; détective
    DUPONT; inspecteur
    MARC; O'polo
    JACQUES; ousi

    d'autre part se trouve mon formulaire (frm_constat_hse). Dans un premier champs, nous avons nom_emetteur.
    Afin de bien différencier les émetteurs qui ont le même nom, j'ai une 2ème liste déroulante qui spécifie le poste de la personne ciblé.

    Grace au post de Flakedo, a son aide et celle de Zoom61, j'ai bien progressé mais j'ai un bug que je ne saisis pas.

    1er liste déroulante:
    vous déroulez la liste, on voit le nom suivi du poste de chaque émetteur.

    la, pas de problème, tout le monde apparait, avec le bon poste. je sélectionne un emetteur, le champs prend le nom de l'émetteur.

    2ème liste déroulante:
    lors du 1er passage, la liste se met correctement a jour en fonction du nom.
    si je choisis MARC, je aurai uniquement O'polo en choix de poste.
    si je choisis DUPONT, j'aurai les 3 postes associés "ouvrier", "inspecteur", détective";
    1er bug
    quand je sélectionne un poste, le champs reste vide. (quand je dis vide c'est "null" et pas "")
    2ème bug, si je me suis trompé d'utilisateur. et que je rechange le nom, en passant de DUPONT a MARC, la liste de poste ne se met plus a jour.
    je reste sur les 3 postes des DUPONT.

    Je vous mets mon code SQL, ainsi que le code "après MAJ".

    *lstdrl = liste déroulante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ##CODE lstdrl_nom_emetteur
    SELECT tbl_emetteur.id_emetteur, tbl_emetteur.nom_emetteur, poste_emetteur
    FROM tbl_emetteur
    ORDER BY tbl_emetteur.[nom_emetteur], tbl_emetteur.[poste_emetteur];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ## CODE lstdrl_poste_emetteur
    SELECT tbl_emetteur.poste_emetteur
    FROM tbl.emetteur
    WHERE (((tbl_emetteur.nom_emetteur)= [forms]![frm_constat_hse]![lstdrl_nom_emetteur]));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ## AFTER UPDATE
    Private Sub lstdrl_nom_emetteur_AfterUpdate
           Me.Requery
           Me.refresh
    End Sub
     
    Private Sub lstdrl_poste_emetteur_AfterUpdate
           Me.Requery
           Me.refresh
    End Sub
    ** si faute de syntaxe, cela vient surement de moi, j'ai du recopié le code.

    J'espère avoir été assez clair.
    ps: je vais essayer de mettre la table de relation, mais pour l'instant, j'arrive pas a m'envoyer de mail.
    Merci d'avance a tous.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    j'ai résolu le 1er bug.
    Je récupère bien la variable poste_emetteur, maintenant.

    par contre, au niveau de la mise a jour de la liste, je ne trouve pas.
    (quand je parle de mise a jour a de liste, je parle de changer le nom de l'emetteur une 2ème fois).

    j'ai rajouter Me.requery et Me.refresh dans les évènements des 2 listes déroulantes pour "Si modification" et pour "Sur changement".
    mais ca ne marche pas plus.

    Quelqu'un aurait une idée? S'il vous plait?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    je progresse tout seul et très lentement.

    alors maintenant le nouveau bug.
    j'ai une liste déroulante de nom_emetteur.

    a coté de la liste un bouton qui renvoit vers le formulaire ajout_emetteur.

    si je ne déroule pas la liste déroulante, que je vais directement dans le formulaire ajout_emetteur, que j'insere une personne dans la table. en revenant dans la liste déroulante, le nouveau nom apparait.

    Mais si je déroule la liste avant d'aller dans le formulaire, alors la mise a jour ne se fait pas....

    Quelqu'un a une idée. j'ai collé "me.requery" et "me.refresh" sur clic, avant MAJ, après MAJ, si modification, sur changement, ca marche pas...

    Quelqu'un s'il vous plait?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Je lis ça tranquillement et je vois si je peux t'aider on dirait du HSE....ça tombe bien j'ai un DUT HSE dans mes bagages ^^
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    c'est exactement ca.
    Mon maitre de stage a mis en place un système de constat HSE, dans son entreprise.

    chaque employé peut faire un constat.
    il y a une cotation pour le port des EPI par exemple. 1 à 3 bien.
    A à C pas bien.
    bref il y en 6000 par an, dans l'entreprise, il veut donc une base donnée pour exploiter les résultats et une application pour les ajouter facilement.
    (pour l'instant, il fait du copier coller, dans 4 ou 5 fichiers excel...)

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Déjà je remarque un détail qui me chagrine....
    Dans ta première liste tu dois avoir 3 fois Dupont je suppose....Ne serait-ce pas mieux de ne l'avoir qu'une seule fois ? le champ id_emetteur correspond à quoi ? Quand tu as décrit ta table, tu n'en fais pas mention...Est-ce que ce champ est unique pour chaque opersonne ? ou pour chaque couple nom/poste ?

    Perso j'aurai fait une table T_employes(id_employe, nom, prenom, etc.) et une table T_postes(id_poste, intitulé). Et pour les relier, une table T_affectationsPostes(id_employe,id_poste)

    De cette manière, un employé peut avoir 1 ou plusieurs postes et un poste peut être attribué à 1 ou plusieurs employés

    Je continue de regarder

    EDIT : pour mettre à jour une liste déroulante :
    ça devrait t'aider déjà
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    alors ca c'est original, un étudiant avec des problèmes de conception...... -_-

    le problème est que je ne suis pas super a l'aise sur ACCESS, et j'ai l'impression que plus il y a de tables plus ca va être complexe.

    j'essaie de voir le code pour la mise a jour de la liste.
    j'édit en fonction du résultat. ^^

    Echec :
    En termes de code, sur ma liste déroulante, j'ai ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ##CODE lstdrl_nom_emetteur
    SELECT tbl_emetteur.id_emetteur, tbl_emetteur.nom_emetteur, poste_emetteur
    FROM tbl_emetteur
    ORDER BY tbl_emetteur.[nom_emetteur], tbl_emetteur.[poste_emetteur];
     
    ## AFTER UPDATE
    Private Sub lstdrl_nom_emetteur_AfterUpdate
           Me.Requery
           Me.refresh
    End Sub
    que j'ai transformé en ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ## AFTER UPDATE
    Private Sub lstdrl_nom_emetteur_AfterUpdate
           Me.nom_emetteur.Requery
           Me.nom_emetteur.Refresh
    End Sub
    pourquoi donc? peux tu réexpliquer ?

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Justement ^^ Plus il y a de tables et plus c'est facile : principe de l'unicité. Si tu fais une base de données, c'est pour éviter les informations redondantes : gain de place et de lisibilité Et pour coder après tes petites macros, c'est beaucoup plus facile (et pour demander de l'aide aussi :p)
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    je suis en train d'essayer de repenser toute la conception de mon projet, mais c'est affreux, je suis completèment perdu... ><

    quand j'arrive chez moi, je te post mes tables actuellements avec mes relations et tout et tout.

    En attendant... je fais une nouvelle éboche...

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Pour tes listes déroulantes, tu peux t'inspirer de ce petit tuto très bien fait Si tu veux voir ce que ça donne, je peux t'envoyer une base exemple avec les 3 tables que je t'ai citées et un formulaire contenant les 2 listes déroulantes liées entre elles. C'est-à-dire que quand tu choisis un poste, la liste des employés répondant à ce poste se rafraîchit. Et quand tu choisis un employé, la liste des postes correspondant se rafraîchit.
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Paidge, tu es une perle. ^^ merci
    je peux te soumettre ma conception quand je l'ai fini ? =)
    tu pourras me dire ce que tu en penses.

    ps: ouai interessé par ton exemple avec 3 tables. me dis pas que tu l'as fait pour moi... ?

  12. #12
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Sissi bien sûr ça m'a pris 5min.
    Envoies-moi ton email en privé. Je t'ai envoyé un MP mais apparemment tu n'as pas été notifié
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

Discussions similaires

  1. [AC-2010] mise a jour de liste déroulante
    Par phoenix974 dans le forum IHM
    Réponses: 2
    Dernier message: 12/12/2013, 13h38
  2. Réponses: 8
    Dernier message: 11/02/2010, 16h18
  3. Mise a jour de liste déroulante
    Par SnakeCharmer dans le forum IHM
    Réponses: 6
    Dernier message: 27/05/2008, 15h28
  4. Mise à jour à partir liste déroulante
    Par Daniel MOREAU dans le forum Access
    Réponses: 4
    Dernier message: 12/05/2006, 15h13
  5. pb de mise a jour de liste Déroulante !
    Par Fredri dans le forum Access
    Réponses: 9
    Dernier message: 11/01/2006, 17h27

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