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 :

Lier 2 listes.


Sujet :

IHM

  1. #1
    Membre éclairé
    Avatar de Oppenheimer
    Homme Profil pro
    Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Inscrit en
    Mars 2012
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2012
    Messages : 235
    Points : 891
    Points
    891
    Par défaut Lier 2 listes.
    Bonjour,

    J'aimerais que le choix entré dans une première liste (déroulante), fasse apparaître automatiquement les enregistrements correspondant dans une seconde liste (non-déroulante).

    Comment faire, s'il vous plaît ?
    "La physique n'est pas tout" - Robert J. Oppenheimer

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Dans ta zone de liste déroulante, tu choisis UNE valeur.
    Qu'appelles-tu "les enregistrements correspondant dans une seconde liste (non-déroulante)" ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Citation Envoyé par ClaudeLELOUP Voir le message
    Qu'appelles-tu "les enregistrements correspondant dans une seconde liste (non-déroulante)" ?
    Je pense qu'il doit vouloir dire les lignes dans une "zone de liste"...

    Il faut que la requête qui est sur ta "zone de liste" soit filtrée avec le champ de la liste déroulante. Et tu mets un Me.requery sur la commande après mise à jour de la liste déroulante.

    @+
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Me.requery
    Plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.LaZoneDeListe.Requery
    Sinon, le formulaire se repositionne sur le 1er enregistrement !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Un tuto à lire : http://argyronet.developpez.com/offi...ectitemlistAB/

    Philippe

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.LaZoneDeListe.Requery
    Bien vu
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  7. #7
    Membre éclairé
    Avatar de Oppenheimer
    Homme Profil pro
    Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Inscrit en
    Mars 2012
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2012
    Messages : 235
    Points : 891
    Points
    891
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Bonjour,

    Dans ta zone de liste déroulante, tu choisis UNE valeur.
    Qu'appelles-tu "les enregistrements correspondant dans une seconde liste (non-déroulante)" ?
    Bonjour ClaudeLELOUP,

    Si je sélectionne "Steeve Jobs" dans la première liste, j'aimerais avoir "McIntosh" dans la deuxième;
    et si je sélectionne "Bill Gates" dans la première, j'aimerais avoir "Windows" dans la deuxième.
    "La physique n'est pas tout" - Robert J. Oppenheimer

  8. #8
    Membre éclairé
    Avatar de Oppenheimer
    Homme Profil pro
    Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Inscrit en
    Mars 2012
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2012
    Messages : 235
    Points : 891
    Points
    891
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Merci Philippe JOCHMANS,

    J'ai lu toute la partie concernée, à savoir le chapitre Formulaire.

    Je ne sais pas si c'est parce que je suis sous 2010, mais cela ne marche pas.

    À tous:
    J'ai pu faire une première fois l'opération d'après conseils que je n'ai notés que partiellement. Il s'agissait d'opération dans l'intérface.

    La seule procédure événementielle était Après mise à jour: un

    Il s'agissait je crois, de reprendre le nom de l'ID qui faisait foi dans la première liste. Malheureusement, en supprimant des essais de requêtes infructueux, j'ai également supprimé la requête sur laquelle se basait mon formulaire.

    Mon problème est que j'ai besoin de faire les opérations, puis de les consigner soigneusement. Mais mon boss me demande de ne pas être trop procédurier; en outre dois-je éviter de poser une 2ème fois une même question.

    Donc bref, prendre note, mais pas trop.


    Et je dois dire qu'avec son mic-mac de plusieurs types de valeurs dans une liste, et tiens que je t'embrouille à remprendre le nom de l'ID dans un autre champ, je n'ai rien compris.
    "La physique n'est pas tout" - Robert J. Oppenheimer

  9. #9
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Tu veux dire :

    Tu sélectionnes "Steeve Jobs" dans ta liste et tu voudrais que "McIntosh" apparaisse dans un autre contrôle ? Pourquoi une zone de liste ?

    Si c'est la cas, dans le contenu de ta zone de liste modifiable, tu ajoutes une deuxième colonne (éventuellement cachée) et comme source du contrôle destinataire tu fais référence à la 2e colonne.
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[LaZoneDeListeModifiable].column(1)
    (1) pour deuxième colonne : ici, Access numérote à partie de zéro
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Me.Refresh (je ne trouve pas la police courrier pour le code)
    Images attachées Images attachées  
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  11. #11
    Membre éclairé
    Avatar de Oppenheimer
    Homme Profil pro
    Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Inscrit en
    Mars 2012
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2012
    Messages : 235
    Points : 891
    Points
    891
    Par défaut
    D'accord, je voulais décrire simplement mon problème, car j'étais sûr qu'il y avait une astuce brève pour lier deux listes.

    Alors je vais vous décrire le plus possible la réalité qui est la mienne.

    En fait j'ai un ensemble d'apprenants en informatique.

    On m'a demandé d'appeler T_JournalTravail, une table de personnes qui contient:
    ID_Apprenant,
    Nom_Apprenant,
    Prenom_Apprenant,
    Initiales_Apprenant - (garanties uniques par un autre département);

    une table de tâches qui contient:
    ID_Tache,
    Debut_Tache,
    Fin_Tache,
    Descriptif_Tache,
    Fk_ID_Apprenant,
    Fk_ID_Mandat;

    enfin une table de mandats:
    ID_Mandat,
    Titre_Mandat,
    Debut_Mandat,
    Fin_Mandat.

    -J'ai un état qui est fait - le journal de travail - que je pourrai ouvrir avec un bouton de formulaire (qu'on me demande d'intituler "Imprimer", bref): Ok.

    -Enfin, un formulaire:

    dans la première liste (déroulante) d'apprenants, j'ai quatre colonnes:
    ID_Apprenant | Prenom_Apprenant | Nom_Apprenant | Initiales_Apprenant

    (la première colonne a une largeur de zéro, je ne dois pas afficher l'ID).

    -dans la deuxième liste (fixe), je dois avoir:

    Debut_Tache | Fin_Tache | Descriptif_Tache | Titre_Mandat

    (la correspondance entre les mandats et les tâches est déjà bonne dans cette deuxième liste).

    C'est là que j'ai un doute. J'ai vu dans le pdf de developpez.net, qu'il fallait reprendre - si je fais la correspondance dans mon problème - l'ID_Apprenant comme dernière colonne de la deuxième liste (colonne cachée).

    Théoriquement, à part le rafraichissement après mise à jour, et la reprise de l'ID, il n'y a pas grand chose, mais je patauge.

    N.B.:
    J'ai corrigé mon message précédent pour le code.
    "La physique n'est pas tout" - Robert J. Oppenheimer

  12. #12
    Membre éclairé
    Avatar de Oppenheimer
    Homme Profil pro
    Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Inscrit en
    Mars 2012
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2012
    Messages : 235
    Points : 891
    Points
    891
    Par défaut
    Je crois qu'on va faire plus simple.

    Je viens de re-créer une base de données sur la base du tutoriel de developpez.net, donné en référence dans un message ci-dessus.

    J'ai 2 catégories dans la table T_Categorie:
    Informatique,
    Chimie.

    J'ai 4 métiers dans la table T_Metier:
    Programmer,
    Architecte système;
    Physicochimiste,
    Thermodynamicien.

    J'ai bien lié dans la table T_Metier les enregistrements de la clé étrangère Fk_Categorie avec les bons numéros.



    -Le code VBA à partir de SQL n'est pas fonctionnel sous 2010: il faut mettre toute l'instruction sur une ligne: ok.


    -Une fois ceci fait, je vais dans mon formulaire.
    Lorsque la deuxième liste a comme propriété Active = False (Non), tel que recommandé dans le tutoriel: Il ne se passe rien.

    -Lorsque je l'active, ça va mieux: j'ai les métiers affichés, mais en ayant sélectionné Informatique dans la première liste, j'ai toujours les 4 métiers dont ceux de la chimie qui s'affichent dans la deuxième liste.

    Je ne sais pas ce qu'il faut changer entre cette procédure Access '97,
    pour que cela marche dans Access 2010.

    Pourtant, depuis 2 ans, il y a bien quelqu'un qui est arrivé à lier 2 bêtes liste dans Access, non ?
    "La physique n'est pas tout" - Robert J. Oppenheimer

  13. #13
    Membre éclairé
    Avatar de Oppenheimer
    Homme Profil pro
    Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Inscrit en
    Mars 2012
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Certificat Fédéral de Capacité en informatique - orientation bases de données (conception)
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2012
    Messages : 235
    Points : 891
    Points
    891
    Par défaut
    J'ai dû et pu redemander à mon boss, voici la solution:



    Dans cette requête, en mode Création, aller dans la colonne ID, à la ligne du Critère.
    Menu Afficher/masquer / Paramètres: déclarer un paramètre "Choix".
    Dans le Formulaire qui se base sur la requête, aller dans
    1ère Liste (cmb_List1)
    /Propriétés
    /Autres
    /Nom: insérer le nom du paramètre, ici: Choix.
    2ème Liste (lst_Liste2)
    /Propriétés
    /Données
    /Contenu: choisir la requête qui a été créée ci-dessus.
    Retourner dans la cmb_List1
    /Propriétés
    /Evènements
    /Après MAJ (après mise à jour): Procédure évènementielle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub cmb_List1_AfterUpdate()
        lst_Liste2.Requery
    End Sub
    .
    En effet, je raisonnais en termes de tables - un peu comme si on voulais faire de l'assembleur au lieu du C - et penais donc passer par une clé étrangère.


    Le problème est que
    1. la 2ème liste se basait [indirectement sur deux autres tables] sur une requête.
    2. Une fois le paramètre définit relativement à la requête et donc la 2ème liste, je voyais mal qu'on définisse une entrée pour cette 2ème liste... alors qu'on n'avait pas encore la sortie de la 1ère liste.
    3. C'est pourquoi, une fois le paramètre définit dans la requête de la deuxième liste, il fallait reprendre son nom dans la 1ère liste. On obtient ainsi une "bijection", et même plus, une égalité.
    Après, égaliser indirectement des champs de deux listes, ça peut paraître trop rigide; c'est en tout cas une solution, qui marche pour ce que j'ai à faire.

    Si j'ai bien consigné les corrections, c'est tout ce dont il s'agit. Très peu de VBA.

    J'estime le problème 5/5, à vous...
    "La physique n'est pas tout" - Robert J. Oppenheimer

Discussions similaires

  1. [MySQL] Comment lier 2 listes de sélection ???
    Par orleans dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/04/2006, 15h27
  2. [Javascript] Comment lier deux liste de sélection
    Par orleans dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2006, 07h12
  3. Réponses: 13
    Dernier message: 23/02/2006, 11h42
  4. [PHP-JS] Lier deux listes déroulantes
    Par budiste dans le forum Langage
    Réponses: 6
    Dernier message: 15/11/2005, 15h36
  5. [WD5.5] Lier deux listes déroulantes
    Par grellierj dans le forum WinDev
    Réponses: 7
    Dernier message: 11/10/2005, 17h33

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