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 :

Créer un lien direct entre 2 listes déroulantes. [AC-2010]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Créer un lien direct entre 2 listes déroulantes.
    Bonjour,

    Tout d'abord je tiens à vous remercier et vous encourager pour l'entretient de ce site, de la FAQ et du forum, car ayant débuté il y a 10 jours sur acces, ce site est devenu ma bible, et vous me semblez former une équipe performante au service des novices

    Maintenant ma question:


    Je crée pour la production de mon entreprise une base de données outillage,
    pour cela j'ai créé une table T_IdOp pour répertorier les opérateurs à qui sont confiés les outils
    Cette table contient les champs No Auto pour éviter les doublons, Matricule et NomPrenom

    Dans un sous formulaire, j'ai lié une liste déroulante (exemple de contenu quand on déroule: 15624 (matricule) Bob L'éponge (NomPrenom))
    Cependant, la valeur renvoyée est celle du matricule, ici 15624, dont j'ai besoin pour effectuer un changement d'AssignationOutil.
    J'ai donc besoin de cette valeur matricule car elle est propre à chaque opérateur.
    Mais, pour rechercher dans le menu déroulant, il est necessaire de rechercher par NomPrenom, car on ne connais pas par coeur le matricule des opérateurs.

    De mon coté, j'ai pensé à créer une 2ème liste déroulante qui serait directement liée à celle qui revoie le matricule, puis cacher cette dernière.
    On aurait donc si on cherche Bob l'éponge, la valeur de son matricule qui se stock dans la liste déroulante cachée, et le cahier des charges serait respecté (recherche par prénom MAIS valeur matricule necessaire).

    Information complémentaire:
    Quand on choisit une valeur dans la liste déroulante, cette valeur est valable pour tout les enregistrements du SF.
    Une case à cocher pour un enregistrement me permet d'effectuer les changement necessaire en fonction du matricule de destination choisi.

    Voilà, vous serez forts aimables de m'indiquez:
    1-Si il existe une autre manière de faire
    2-Si mon idée est possible
    3-Si oui, comment?

    J'espère que je m'exprime de façon compréhensible,
    merci de prendre en considèration ce post, à bientôt.

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,
    Tu as plusieurs possibilités :
    1°) Tu lies deux listes déroulantes qui pourraient te permettre de faire une recherche soit par matricule soit par nom_prénom (chacune des listes ayant l'une ou l'autre des informations)
    2°) Tu n'as qu'une liste déroulante

    Dans le cas 1, tu appliques sur chacune des listes déroulantes un événement de type AfterUpdate par exemple.
    Sur ces événements, tu iras récupérer la valeur sélectionnée. Avec cette valeur, tu vas chercher dans ta base de données, le matricule ou nom/prenom correspondant à ta sélection.
    Dernière étape, dans la seconde liste déroulante, tu affiches la valeur trouvée.

    Ainsi, tu as toutes tes informations.
    Cette solution te permet d'avoir deux filtres possible.

    Dans le cas 2, ta liste déroulante sera formatée de la manière suivante :
    Colonne 0 : nom/prénom
    Colonne 1 : Matricule (masquée si tu veux)

    Lors de la sélection d'une ligne de cette liste déroulante, tu vas chercher la valeur de la colonne 1 de la ligne sélectionnée.
    Je n'ai plus la syntaxe exacte mais avec les mots-clés cités juste au dessus, tu dois pouvoir trouver un tutoriel qui en parle sur le forum.

    Voilà. Bon courage
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Re
    Merci pour la rapidité de ta réponse.

    C'est le cas 1 que je veux réaliser, et j'avais pensé à logique que tu m'expliques ici, le problème est justement que je n'ai pas trouvé sur le site de quoi mettre ceci en oeuvre (ma recherche est surement deffectueuse)

    Pourrais tu m'indiquer par quel morceau de code on peut récupèrer cette fameuse valeur du matricule dans T_IdOp en fonction du nom rentré dans la deuxième liste déroulante, et injecter directement cette valeur dans la 1ère liste déroulante (celle du matricule) ?

    D'avance merci,
    Pierrot

  4. #4
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Je ne vais pas te mettre en place la solution toute faite car je n'ai pas sous la main de quoi tester toute la solution mais je vais te donner quelques indications supplémentaires :

    Récupération de la valeur de ta liste :
    Fonction permettant d'effectuer une recherche rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DlookUp("[Nom_Champs]","[Nom_Table]","[Nom_Champs_Condition]=" & Me.lst_matricule.value)
    Le dlookup fonctionne de la manière suivante :
    - Nom_Champs : cible le champs à rechercher
    - Nom_Table : cible la table ou la requête où est stockée le champs rechercher
    - La 3ème partie permet d'avoir des conditions de recherche (attention à la différence de syntaxe entre le format numérique, texte et date)
    Format numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[Nom_Champs_Condition]=" & Me.lst_matricule.value
    Format texte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[Nom_Champs_Condition]='" & Me.lst_matricule.value & "'"
    Format date:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[Nom_Champs_Condition]=#" & format(Me.lst_matricule.value, "mm/dd/yyyy") & "#"
    L'affichage de l'information dans la deuxième liste déroulante :
    Soit tu l'affiche en dur avec le DlookUp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.lst_nomprenom.value = dlookup(...)
    Soit tu fais une boucle sur ta liste déroulante :
    Pas sur des fonctions utilisées par contre. Je ne sais jamais laquelle prendre pour cette partie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i = 0 to me.lst_nomprenom.listcount -1
        if me.lst_nomprenom.itemsselected(i) = dlookup(...) then
              me.lst_nomprenom.selected(i) = true
        end if
    next i

    Voilà. Tu as tout je crois
    Bon courage ^^
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour PierrotMfff, Gado2600,

    J'ai donc besoin de cette valeur matricule car elle est propre à chaque opérateur.
    Mais, pour rechercher dans le menu déroulant, il est necessaire de rechercher par NomPrenom, car on ne connais pas par coeur le matricule des opérateurs.
    Je ne suis pas certain de comprendre ton choix de solution.

    La solution 2 de Gaétan est beaucoup plus efficace. Tu as besoin d'une seule liste. Tu affiches le nom/prénom en jouant avec la largeur des colonnes ainsi tu pourras rechercher par nom et tu mets l'autre colonne comme colonne lié ainsi tu auras le matricule pour assignation d'outil.

    Je suppose que le matricule est le champ de la table du sous formulaire il sera donc renseigné directement.

    Bonne chance
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  6. #6
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Merci tes informations m'ont beaucoup aidé.

    Robert: on ne peut pas je pense rechercher par prénom et pourtant renvoyer la valeur du matricule, enfin je pense, si on le peut dis moi comment faire, une prochaine fois cela pourrait m'aider

  7. #7
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Tu peux comme je l'ai expliqué dans le cas 2.
    C'est une question d'organisation des colonnes de ta liste déroulante et sur une procédure événementielle, tu retournes la valeur sélectionnée dans la colonne de ton matricule.

    Bonne journée et n'oublie pas de marquer RÉSOLUE
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  8. #8
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    D'accord, merci beaucoup (je viens de réussir ce que je voulais faire en plus)
    Bonne continuation.

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

Discussions similaires

  1. [XL-2010] Créer liaison entre deux listes déroulantes
    Par AMOUR1 dans le forum Excel
    Réponses: 1
    Dernier message: 10/04/2013, 12h46
  2. Y a t il un lien direct entre UML et MVC?
    Par belspirit dans le forum MVC
    Réponses: 6
    Dernier message: 27/05/2011, 00h36
  3. requete parametrée entre deux listes déroulantes
    Par olodin dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/06/2007, 09h12
  4. Dépendance entre 2 listes déroulantes
    Par Halzard dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/05/2007, 16h26
  5. Correspondance entre 2 listes déroulantes
    Par willytito dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/05/2007, 16h47

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