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 :

Liste deroulante avec choix automatique


Sujet :

IHM

  1. #1
    Candidat au Club
    Homme Profil pro
    Employe
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employe
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Liste deroulante avec choix automatique
    Bonjour à tous,

    Tout d'abord, merci pour ce forum!!!

    Sauf erreur de ma part, je n'ai pas vu de Topic à ce sujet, merci de me donner un lien si c'est le cas.

    Plutôt debutant sous Access, dans un formulaire, j'ai une liste deroulante alimentée à partir d'une table. Ensuite, j'ai une seconde liste deroulante qui depend du choix effectue dans la premiere.
    Une liste deroulante peut stocker au maximum 20 champs différents je crois. On ne peut donc afficher "que" 20 contrôle texte en fonction d'une liste avec les formules du type : Formulaires.NomFormulaire.NomListe.Colonne()
    Comment faire afin qu'une troisieme liste deroulante soit liée à la deuxième liste déroulante tout en sachant donc que le "Select..." dans son contenu sera différent mais à l'exception d'un champ identique ? La deuxième et la troisième liste déroulante ont des tables sources différentes.
    Ainsi, il faudrait que le choix effectue sur la deuxième liste deroulante administre automatiquement le choix de la choix troisième liste deroulante (qui serait "invisible").

    Merci d'avance!

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bonjour,

    La méthode est la même que tu as utilisé pour lier la première à la seconde.
    A moins que j'ai raté quelque chose...

    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Employe
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employe
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse rapide Loufab!

    La troisième liste déroulante est invisible, l'utilisateur ne fait qu'un choix à partir de la seconde liste déroulante.
    Il est nécessaire que le choix de la deuxième liste déroulante engendre le choix de la troisième liste déroulante. J'ai bien essayé avec "Source Contrôle" en inscrivant la deuxième liste déroulante dans la "Source Contrôle" de la troisième mais ceci ne fonctionne pas.
    Les tables sources de la deuxième et troisième liste sont différentes, elles ont deux champs commun en fait (erreur lors de mon 1er mess...) mais ne sont liées entre elles que par une autre table avec l'un de ses champs communs (qui est la selection effectuée par l'utilisateur au niveau de la première liste déroulante...)

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bonjour,

    Je ne comprend pas bien ce qui t'empêche d'utiliser la même technique que tu as employé pour lier la deuxième liste à la première ?

    Pour lier des listes c'est simple, il n'y a que 2 techniques.

    La première est d'inclure dans la source de la liste liée la référence à la liste "Mère" sur le champ concerné.

    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =forms.monform.maliste1.column(x)
    où x est un nombre entier indiquant la position de la colonne dans la source, en partant de 0.

    Pour le rafraichissement de la liste liée lors du changement de valeur de la liste mère on utilise un requery dans l'événement Après MAJ.

    La deuxième méthode, plus complexe mais plus flexible est de redéfinir la source de la liste liée (malisteliee) au moment du Après MAJ de la liste "Mère" (maliste1). Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.malisteliee.rowsource = "SELECT .... FROM ... WHERE ... AND nomduchampcommun = " & me.maliste1.column(x) & "...;"
    Dans ce cas et si la colonne est de type texte il faut utiliser les séparateurs de texte. Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...= """ & me.maliste1.column(x) & """...;"
    Et de grâce arrêtons de mettre des requery partout. LORS DE LA DEFINITION OU DE LA REDEFINITION D'UNE SOURCE LE REQUERY EST IMPLICITE !

    Fait F1 sur Source control ! Tu verras que ça ne sert pas du tout à ça. D'ailleurs c'est le conseil que je donne à tous. Avant de tripoter les propriétés/évènement faites un F1 dessus. L'aide sert à ça !
    1) ça évite de perdre du temps sur des pistes aléatoires.
    2) ça évite également de perturber le fonctionnement à cause de mauvais réglages qu'on aurait laisser.
    3) au bout d'un moment de tripotage hasardeux ACCESS à tendance à se fâcher et à cramer le fichier. Et quand ça arrive 2 solutions, la décompilation/compactage ou la mise à la corbeille de l'appli.

    Cordialement,

  5. #5
    Candidat au Club
    Homme Profil pro
    Employe
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employe
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Dsl pour le temps de reponse, un peu occupe et plus la possibilite de gerer mon projet...

    Loufab, je ne chercher pas à "lier" deux listes déroulantes, pas exactement. Je voudrais que le choix, la selection qui est fait sur l'une des listes déroulantes se répercutent sur une autre liste deroulante.

    Dans "Source Contrôle" de ma liste dependante, j'ai ecrit la liste "mère". Ceci fonctionne quand les tables "meres-filles" sont liees par une relation "1-plusieurs" avec integrite referentielle.

    Seulement, je voudrais "administrer" le choix d'une liste à une autre liste tout en sachant que les tables dont dépendent ces listes ne sont liées entre elles que par une autre table distincte. La relation des deux tables (pour les listes déroulantes) vers la table distincte et "plusieurs => un".

    Vois-tu de quoi il est question ?

    Merci d'avance!!!

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Pour copier (affecter) la valeur choisie d'une liste à une autre on utilise la même méthode que pour n'importe quel contrôle.

    Cas simple : les 2 listes ont la colonne liée réglée sur la colonne contenant la valeur à transférer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.malisteDestination = me.malisteSource
    Cas moyen : la liste destination a la colonne liée qui correspond à la valeur émise par la liste source, mais la liste source non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.malisteDestination = me.malisteSource.column(x)
    Où x est le n° de la colonne contenant la valeur à envoyer. Note que tu peux préciser cela également dans le cas simple, et que x démarre à 0.

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

Discussions similaires

  1. [XL-2007] Liste deroulante avec choix fonction de ce qui est déja attribué
    Par maxime-a dans le forum Excel
    Réponses: 7
    Dernier message: 02/04/2015, 11h53
  2. Liste deroulante avec saisie semi automatique
    Par saidhouria dans le forum Conception
    Réponses: 2
    Dernier message: 14/06/2013, 13h27
  3. [XL-2010] Liste deroulante avec saisie semi automatique
    Par Niko77 dans le forum Conception
    Réponses: 2
    Dernier message: 16/05/2013, 13h18
  4. Réponses: 3
    Dernier message: 02/03/2010, 08h14
  5. Réponses: 3
    Dernier message: 05/05/2006, 03h05

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