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

Access Discussion :

Liste déroulante qui n'affiche que les valeurs NON déjà sélectionnées [AC-2016]


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut Liste déroulante qui n'affiche que les valeurs NON déjà sélectionnées
    Bonjour,
    j'ai une problématique qui est peut-être banale mais dont je ne trouve pas la réponse.
    J'ai un formulaire en mode continu avec une liste déroulante contenant les valeurs :1;2;3;4;5

    mon 1er champs est la clé primaire
    mon 2eme champs est une clé étrangère
    mon problème se situe sur le 3eme champs qui est une liste déroulante contenant les valeurs :1;2;3;4;5

    Nom : Presse-papiers-1.jpg
Affichages : 117
Taille : 11,0 Ko

    j'aimerais que, pour une même valeur de clé étrangère, la liste déroulante n'affiche que les valeurs non déjà saisies (en l'occurence ici 2;3;5 )

    Est-ce faisable?

    Merci beaucoup
    Anne

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 263
    Points : 19 428
    Points
    19 428
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    La liste déroulante devrait avoir comme contenu une requête du type :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select Champvaleur from TableValeur where Champvaleur not in (select distinct champ3 from Latable T1 where (T1.Champ2=Forms!Leformulaire!Champ2);)

    Ici j'utilise une sous-requête dans le critère de la requête principale, et j'affiche les valeurs de la requêtes principale qui ne sont pas dans la sous-requête.

    TableValeur est la table contenant les valeurs 1;2;3;4;5...
    Et LaTable est la source du formulaire en mode continu.

    A adapter...

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut
    Merci, c'est super dans l'absolu...lorsque je fais une requête externe (traditionnelle) j'arrive effectivement à n'avoir que les enregistrements non sélectionnés mais lorsque je fais la même requête comme Contenu de ma zone de liste, cela ne marche pas..j'ai toujours ma liste 1,2,3,4,5...incompréhensible

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 263
    Points : 19 428
    Points
    19 428
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Il faut aussi prévoir de rafraîchir la liste sur activation de l'enrg. ou réception du focus...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 87
    Points
    87
    Par défaut
    Ca marche parfaitement!
    En fait il suffisait de faire un petit refresh sur le After Uppdate de ma liste déroulante..

    Dans les faits :

    j'ai une liste déroulante qui contient des numéros de semaine...

    Pour créer ma liste déroulante :
    -j'ai créé une petite table LaSemaine avec un champs NumSemaine dans lequel j'ai saisi mes 5 enregistrements : 1, 2, 3, 4, 5
    -dans la liste déroulante de mon formulaire qui accueille les numéros de semaine j'ai saisi :
    Origine source : Table/Requête
    Contenu : reqListeSem

    Ma reqListeSem est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT LaSemaine.NumSemaine
    FROM LaSemaine
    WHERE LaSemaine.NumSemaine not in (SELECT distinct t1.Semaine
    FROM SemaineEte t1 where (t1.CodeIntParticipation=[Forms]![ParticipationStage]![CodeIntParticipation]) );
    (SemaineEte est la table qui contient mon champs Semaine pour lequel je veux saisir des numeros de semaine différents selon ceux déjà saisis pour un même CodeIntParticipation (ma clé étrangère))

    Et dans le Après MAJ de ma liste je créé l'évènement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Semaine_AfterUpdate()
    Me.Refresh
    End Sub
    Voilà!

    Merci beaucoup!!
    Anne

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

Discussions similaires

  1. [AC-2007] Liste déroulante qui s'affiche vide
    Par Kisty10 dans le forum IHM
    Réponses: 5
    Dernier message: 02/02/2011, 10h09
  2. Clause Where qui ne retourne que les valeurs paires
    Par elekaj34 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/09/2010, 19h13
  3. problème liste déroulante qui n'affiche rien
    Par edonist dans le forum IHM
    Réponses: 5
    Dernier message: 28/08/2008, 21h09
  4. Liste déroulante qui s'affiche selon condition
    Par jackfred dans le forum Excel
    Réponses: 7
    Dernier message: 26/06/2007, 10h04
  5. faire une requete qui ne sort que les valeurs d'un champ coché
    Par joseph.breham dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/12/2006, 16h01

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