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 déroulante depend d'une autre liste déroulante [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 100
    Points : 112
    Points
    112
    Par défaut Liste déroulante depend d'une autre liste déroulante
    Bonjour à tous !

    Mon titre semble bien simple, mais en fait je voudrais savoir si on peut faire afficher des éléments d'une liste en fonction d'une autre.

    Là vous aller me dire "va voir les autres posts", mais je vous arrête,car mon cas est un peu spécial

    J'ai déjà créée une liste déroulantes qui m'affiche les Biens Livrables (ou activités) déjà associés à un projet, mais cette fois-ci, je voudrais faire le contraire.

    Eh oui, je voudrais que ma liste déroulante m'affiche les éléments qui ne sont pas déjà associé à un projet pour une raison très simple : je veux empêcher les gens d'associer deux fois le même Bien Livrable à un projet.

    Je me demandais donc s'il existait une solution à mon problème.

    Est-ce que cela pourrait être quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ![Formulaires]![F_AjoutBL]![Lst_no_projet]
    pourrait être une solution ?

    Merci d'avance pour votre aide, belle communauté que vous êtes

  2. #2
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.
    Bien que tu ne dises pas grand-chose sur la structure de ta base, je crois comprendre que tes "Biens livrables" et tes "projets" sont dans deux tables différentes. Si c'est le cas, il suffit de faire une requête de non-correspondance, puis tu crées une zone de liste dont la source est cette requête.
    Cordialement.

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 100
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    merci de la réponse rapide, mais ça ne semble pas fonctionner

    De quelles informations avez-vous besoin de plus ?
    Effectivement, ma table de Biens Livrable et celles des projets sont deux tables distinctes, même que j'utilise un 3ème table qui contient les "code", titre et type de Biens Livrables. Cette dernière permet de remplir mes listes déroulantes uniquement.

    Table Biens Livrables ; No_projet, No-BL, Code_BL, etc
    Table Projet; No_projet, Titre_court_projet, Date_debut_plan, etc
    Table Titre/CodeBL : Code_BL, Titre_BL, Type_BL

    Afin d'empĉher l'usager de créer deux fois le même Bien Livrable pour un projet, je voudrais lui empêcher de voir les Biens Livrables qui existe déjà pur le projet choisi.

    Dans mon formulaire, la personne choisit un projet dans une liste déroulante et ensuite choisit le code de Biens livrables voulu, c'est à ce moment que je voudrais limiter le choix de mon usager. après tentative de la requête de "non-correspondace", rien ne s'affiche dans mes les listes

    C'est pour l'instant la seule idée que j'ai tenté (aide de Robi), mais si vous en connaissez d'autres, faites moi signe, je suis ouverte

  4. #4
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Re-bonjour Kaptin.

    Une liste déroulante est tout à fait capable d'afficher les résultats d'une requête de non-correspondance. La question est donc : est-ce que la requête de non-correspondance lancée indépendamment affiche des résultats. Si elle n'affiche rien, c'est qu'elle n'est pas bien construite
    Le lien entre la table "Biens Livrables" et la table "Projet" est semble-t-il le champ "No_projet". Tu as déjà une requête (appelons-la Rq_BL_associés) qui affiche les biens livrables associés à un projet, qui ressemble probablement à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [Biens livrables].[Code_BL]
    FROM [Biens livrables] INNER JOIN [Projet] ON [Biens livrables].[No_projet] = [Projet].[No_projet];
    avec sans doute une ou des conditions Where pour que les résultats n'affichent que les résultats correspondant au projet choisi.
    Il devrait suffire ensuite de faire une requête de non-correspondance qui n'affichent que les résultats de la comparaison entre la table [Biens livrables] et cette première requête et cherche les biens livrables qui n'y figurent pas. cette requête devrait ressembler à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT[Biens livrables].[Code_BL]
    FROM [Biens livrables] LEFT JOIN [Rq_BL_associés] ON [Biens livrables].[Code_BL] = [Rq_BL_associés].[Code_BL]
    WHERE ((([Rq_BL_associés].[Code_BL]) Is Null));
    Ensuite, on crée la liste avec l'assistant et on choisit comme source la requête de non correspondance.
    Pour que le tout fonctionne, il faut aussi faire un Requery de la deuxième liste sur l'événement Sur changement de la première; càd quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub LstProjet_Change()
    Me.LstBiensLivrables.Requery
    End Sub
    Le tout, bien sûr, à adapter en fonction des noms des champs, de listes, etc que tu utilises, ce que j'ai écrit ci-dessus, c'est la structure... et dans la mesure de ce que j'ai compris des relations entre tes tables.
    Mais cette façon de faire fonctionne, je l'ai testée.
    Bon travail!
    Cordialement.

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 100
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    toujours rien, mes listes n'affiche rien et Access ne cesse de me dire que j'ai un problème de jointure.

    Le problèeme vient probablement du fait que lorsque je créer un Bien livrable, la liste des codes vient d'une autre table ne contenant que les codes possibles afin de remplir ma liste déroulante.

    Ce que j'ai donc tenté de faire, c'est de tout d'abord faire une requête qui trouve les biens livrables existants pour le projet choisit dans la liste déroulante et ensuite je fais ma requete de non-correspondance selon les résultat de la première requête, mais aucun résultat et un problème de jointure que je ne comprends pas.

    Que faire ?

    Kaptin

  6. #6
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 100
    Points : 112
    Points
    112
    Par défaut
    Le tout, bien sûr, à adapter en fonction des noms des champs, de listes, etc que tu utilises, ce que j'ai écrit ci-dessus, c'est la structure... et dans la mesure de ce que j'ai compris des relations entre tes tables.
    Mais cette façon de faire fonctionne, je l'ai testée.
    Je crois que je comprends tout croche la définition de requête de non-correspondance.

    Comment Access va me donner mes Biens Livrable dsi je lui dit de faire fis de ceux associés au projet choisit ?

    Merci encore de votre aide

  7. #7
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour Kaptin.
    Utilise l'assistant création de requête d'Access. D'abord, tu fais une requête (requête 1) qui affiche les biens livrables associés à un projet.
    Puis tu fais une deuxième requête à l'aide de l'assistant. Dans les choix que propose Access, tu choisis bien sûr "requête de non-correspondance". Access va d'abord te demander dans quelle table se trouve ce que tu veux afficher. Tu choisis la table qui contient les biens livrables. Puis l'assistant demande quelle table ou requête contient les enregistrements en relation. Là, tu choisis la requête 1. Access Demande ensuite quelle information se trouve dans les 2 tables. Ce sera, par exemple Code_BL. Enfin, l'assistant demande quels champs tu souhaites voir dans le résultat, et là tu lui indiques le champ que tu veux voir dans ta liste déroulante. Access va alors te construire une jolie petite requête qui contient les biens livrables qui ne sont pas dans la requête 1
    Dernière étape, tu indique la requête 2 comme source de ta liste (propriétés de la liste, Onglet Données, Contenu), et le tour est joué.
    Cela doit marcher, si j'ai bien compris ton problème!
    Bon travail!

  8. #8
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 100
    Points : 112
    Points
    112
    Par défaut
    Ça fonctionné !

    Merci beaucoup Robi pour ta patience et ton aide


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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/05/2010, 16h37
  2. Réponses: 6
    Dernier message: 11/02/2009, 17h17
  3. [MySQL] Remplir une liste déroulante à partir d'une autre liste dynamique
    Par Sekigawa dans le forum PHP & Base de données
    Réponses: 25
    Dernier message: 31/12/2008, 08h54
  4. remplissage d'une liste déroulante à partir d'une autre liste
    Par monphp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/05/2007, 12h28
  5. Réponses: 3
    Dernier message: 30/06/2006, 22h56

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