Probleme liste déroulante sous formulaire
Résolu/Ferméyg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 - 10 oct. 2023 à 10:38
- Probleme liste déroulante sous formulaire
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Google sheet liste déroulante - Accueil - Guide bureautique
- Formulaire de réclamation facebook - Guide
- Supprimer une liste déroulante excel - Forum Word
5 réponses
Modifié le 3 oct. 2023 à 21:43
Bonjour, je ne sais pas si c'est a peut prêt ce que vous souhaitez , mais voici une capture d'écran d'un formulaire Access contenant non pas un Sous Formulaire, mais deux sous formulaire imbriqué l'un dans l'autre . vous pouvez voir donc un sous formulaire Activité et qui contient un sous formulaire Lieu. dans le sous formulaire Lieu, j'ai sur code postale et localité deux listes déroulante qui sont reliée à la table T_codes_pos ( table contenant les codes postaux) cette table est constituée des champs suivants : Numéro (NuméroAuto sans clé primaire); Code_pos (contient les codes postaux); Commune_min (contient le nom des communes); code_pos_commune (contenant le code postal+ nom de commune); et Pays qui ne contint aucune données.
La table participants et la table Lieux contiennent toutes les deux un champ ajouté nommé " CodeLocalite". Ce champs CodeLocalite, fera référence au champ Numéro de la table T_codes_pos . concernant les listes déroulantes, , ce sont des listes indépendante . dans les propriétés de ces listes sur l'onglet Données , sur source de contrôle je mets "CodeLocalite" sur contenu, je mets : SELECT [T_codes_pos].[Numéro], [T_codes_pos].[Code_pos], [T_codes_pos].[Commune_min] FROM T_codes_pos; (instruction SQL) origine source : Table/requête colonne liée, 1. Maintennat je vais sur l'onglet Format et je change Nbre colonnes à 3 et largeur colonnes 0cm;2.542cm;2,542cm .
ce qui signifie pour l'onglet format que je prends 3 colonnes de la table t-codes-pos qui sont : colonne 1 = numéro ; colonne 2 = Code_pos et colonne 3 = Commune_min . mais pour l'affichage des valeurs dans ma liste déroulante numéro ne s'affiche pas d'ou le 0cm;2,542cm;2,542cm . cela dans le but de n'afficher que les codes postaux (données de la table T_code_pos ), je fais la même chose avec l'autre liste celle qui perment d'afficher les communes, mais je change la largeur colonne par 0cm;0cm;2,542cm pour n'afficher que les communes . pour faire la liaison entre mon formulaire et ma table Lieu (T_Lieux) . je place le champ CodeLocalite de la table lieu n'importe ou sur le sous formulaire Lieu ce champ sera via le propriétés mis sur visible = non.
j'espère que vous m'avez compris car ce n'est pas toujours facile d'expliquer quelque chose par écrit. je joints deux images du même formulaire, une en mode formulaire, l'autre en mode création .
BAV
1 oct. 2023 à 09:13
bonjour,
De quel formulaire s'agit-il, et comment arriver à reproduire le problème?
Je suis étonné par la structure de la table "Table_participants". Plutôt que le nom du participant, je m'attendrais à y trouver un id de la table des résidents.
1 oct. 2023 à 10:03
Bonjour,
il s'agit du formulaire "Formulaire_interventions_animation".
Dans le sous-formulaire de ce formulaire, si tu essaies de selectionner des participants, tu verras qu'il y a 3 noms qui apparaissent. Ce qui est ce que je veux.
En effet dans la table "table_residents", tu peux voir qu'il y a quatre noms.
j'ai fait une requête dans la table participants, pour que n'apparaissent que les noms des résidents présents. Si le résident est sortie (date de sortie renseignée) alors je ne veux pas que ça apparaisse dans la liste. Ca c'est bon.
Mais dans le formulaire,pour la valeur : « OURDA COUBOUN », celle-ci s’affiche, je peux la sélectionner mais la valeur qui s’inscrit dans mon champs est « MICHELE FRANZO ».
cordialement,
1 oct. 2023 à 10:16
Ce que tu décris ne correspond pas à ton fichier. As-tu partagé la bonne version de ton fichier?
1 oct. 2023 à 12:19
je le remets mais j'ai retéléchargé le fichier, c'est le bon...
https://www.cjoint.com/c/MJbksvyBArE
1 oct. 2023 à 15:13
Le formulaire s'ouvre avec, en sous formulaire, un extrait de la table "Table_participants": les 8 enregistrements ayant "3" comme "Table_participants_nom_seance" dans cette table.
1 oct. 2023 à 16:24
Oui c est ce sous formulaire qui me pose problème. Quand je selectionne "OURDA COUBOUN ", c est MICHELE FRANZO qui s inscrit
Je veux que quand je sélectionne "OURDA COUBOUN" dans ce sous formulaire , ce soit ""OURDA COUBOUN" qui s inscrit dans mon sous formulaire.
Cordialement
1 oct. 2023 à 17:09
Bonjour, avez au préalable fait un MCD et MLD voir un dictionnaire des données ?
Vos relations sont elles bien définie ? pour votre formulaire et sous formulaire, avez vous mis un champ père et un champ fils ? avez vous fait une requête entre deux tables ? exemple une requête de la table Participants avec la table Activités ? un participant peut-il faire plusieurs activités ? comment sont structurée vos tables ? ce sont autant de questions qui peuvent vous aider dans la réalisation d'une base de donnnés.
1 oct. 2023 à 21:35
Pour l'instant, il est possible, mais loin d'être confirmé, que le souci soit causé par une conception incorrecte de la base de données.
2 oct. 2023 à 16:48
Bonjour,
sur le fichier simplifié ci-après Database21.accdb (cjoint.com)
Je voudrais que mon champs "nom_participant" de la table "Participants" propose une liste déroulante avec le nom des résidents présents?
Le nom des résidents présents sont les résidents issus de la table "Residents" dont le champs "date_sortie" n'est pas renseignée.
Si "date_sortie" de la table "Residents" est renseignée alors on n'affiche pas le nom du résident de la table "Residents" dans la liste déroulante du champs "nom-participant" de la table "Participants", si "date_sortie" de la table "Residents" est renseigné alors on affiche le nom du résident de la table "Residents" dans la liste déroulante du champs "nom_participant" de la table "Participant".
Pourrais tu m'aider stp?
Modifié le 3 oct. 2023 à 08:01
Il me semble que le filtre sur la date de sortie fonctionne bien dans la version précédente que tu as partagée.
3 oct. 2023 à 09:28
Oui mais je voulais voir si j'avais mal fait quelque chose ><
3 oct. 2023 à 10:47
Vos relations sont elles bien définie ?
--> je crois... j'ai essayé
pour votre formulaire et sous formulaire, avez vous mis un champ père et un champ fils ?
--> oui
avez vous fait une requête entre deux tables ? exemple une requête de la table Participants avec la table Activités ?
--> oui une requête. Elle n'est basée que sur la table "residents" mais je l'utilise dans le champs "nom_participant" pour avoir une liste déroulante des résidents présents (ma requete est :" si le resident a le champs date de sortie renseigné alors ne pas l'afficher)
un participant peut-il faire plusieurs activités ?
--> oui
comment sont structurée vos tables ?
ce sont autant de questions qui peuvent vous aider dans la réalisation d'une base de donnnés.
3 oct. 2023 à 07:55
Tu n'as pas fait correctement le lien entre les tables residents et participants.
Comme tu l'as fait, le lien se fait sur base de la civilité du résident, alors qu'il devrait se faire sur base du numéro unique du résident.
Ce qui explique que quand tu sélectionnes un résident, il va chercher un autre résident ayant la même civilité.
3 oct. 2023 à 09:28
je te remercie
3 oct. 2023 à 10:39
j'ai reçu par mail une réponse que tu m'as faite, que je ne parviens pas à retrouver dans le fil de discussion. Je la reprends ici :
--> le lien ne s'est effectivement pas mis, impossible de le retrouver.
--> c'est ici que j'ai un problème. Si pour mon champs "nom_participant" de la ta Table "participant", je choisis un type de données numérique que je relie à ma table "résidents" par le champs "numero_unique_residents" (id_residents) alors dans le sous formulaire du formulaire "interventions_animation" quand dans la deuxième colonne, je clic pour faire apparaitre la liste déroulante la liste des participants (residents qui ne sont pas sortis), j'ai un message d'erreur "la valeur que vous avez entré ne correspond pas au type de données numérique dans cette colonne".
--> si je bascule mon champs "nom_participant" de la ta Table "participant" en type de données "texte court" alors je n'ai plus ce problème. Par contre que je retourne dans ma table-residents, que je selectionne le petit "+" à gauche de n'importe quel ligne, avant j'avais le détail des séances des activités auxquelles avaient participé le résident, maintenant j'ai un message qui me dit "cette expression présente une syntaxe incorrecte ou est trop complexe pour être évaluée.Par exemple une expression numérique peut contenir des élements trop compliqués. Essayez de la simplifier en affectant des parties à des variables".
J'ai l'impression que le problème vient du fait que d'une part je fais un lien entre ma table résidents et ma table participants manuellement par le champs "numero_unique" pour la table résidents et le champs "nom participant" pour la table "participants" et qu'en même temps mon champs "nom_participant" de la table "participant" est une liste déroulante basée sur la requete "resident_present".
si je ne fais que la liaison mais sans la requête. dans mon sous formulaire, j'ai une liste déroulante de la liste des résidents mais sans le filtre "date de sortie", en revanche quand je clique sur le petit "+" d'une ligne de la table "resident", j'ai bien le detail des participations du résident. A partir du moment où je construis mon champs "nom_participant" avec une liste déroulante basée sur ma requête alors dans mon sous formulaire (et aussi dans ma table participant), j'ai bien une liste déroulante des résidents filtrés avec le critère date de sortie mais je ne peux plus cliquer sur le petit "+" d'une ligne de ma table résidents.
oui la finalité la liste déroulante c'est pour le sous formulaire du formulaire. mais je pensais que c'était lié? Si dans ma table "participant", la liste déroulante qui s'affiche pour le champs "nom_participant" alors dans mon sous formulaire qui appelle le champs "nom_participant" de la table "participant, devrait afficher la même chose, non?
3 oct. 2023 à 11:02
Peut-être, serait-ce plus simple pour toi de réussir à m'aider si on repartait de l'origine.
https://www.cjoint.com/c/MJdi5qAQLOE : mon fichier épuré des possibles conneries que j'ai effectuées.
dans ce fichier, il y a un formulaire.
Dans ce formulaire, il y a un sous formulaire.
Ce que j'essaie de faire dans ce sous formulaire, c'est que quand je sélectionne une cellule de la deuxième colonne. Une liste déroulante s'affiche et propose une liste de participants qui soit filtrée.
Ce filtre est : les résidents présents.
les résidents présents sont ceux de la table "residents" dont le champs "date_sortie" n'est pas renseignée.
comment tu ferais pour parvenir à ce résultat?
3 oct. 2023 à 11:48
As-tu corrigé l'erreur que je décris en #12?
3 oct. 2023 à 13:42
As-tu corrigé l'erreur que je décris en #12?
--> non, je ne l'avais pas fait. je ne comprenais pas trop.
comme t'es revenu dessus, j'ai cherché à comprendre. j'ai compris.
Problème réglé!
tu déchires!
merci beaucoup!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié le 3 oct. 2023 à 13:07
Je suppose que tu as essayé de mettre le filtre (sur la présence) dans la définition de la table participants, et que cela ne donne pas le résultat attendu.
Je crois préférable de définir un formulaire affichant les champs de la table participants. Dans ce formulaire, utiliser une requête filtrante comme "Contenu" du contrôle "nom_participant", qui devrait d'ailleurs plutôt s'appeller "resident".
Utiliser ensuite ce nouveau formulaire, à la place de la table, dans ton formulaire principal, pour ajouter de nouveaux participants.
4 oct. 2023 à 11:59
Cela ne fonctionne pas, mais sûrement ai-je mal fait quelque chose.
"Je crois préférable de définir un formulaire affichant les champs de la table participants. Dans ce formulaire, utiliser une requête filtrante comme "Contenu" du contrôle "nom_participant", qui devrait d'ailleurs plutôt s'appeller "resident". "
1. j'ai créé un formulaire à partir de la table "participant".
2. Mon formulaire me propose bien les 3 champs de ma table.
3. J'ai inséré dans "contenu" de la table des propriétés du champs ma requête "residents_presents" (= resident de la table résidents dont le champs "date sortie" n'est pas renseignée.
Mais dans la liste déroulante correspondant au champs "nom_participant", je ne peux sélectionner qu'un seul participant. Je ne peux plus en choisir plusieurs.
Utiliser ensuite ce nouveau formulaire, à la place de la table, dans ton formulaire principal, pour ajouter de nouveaux participants.
4.J'ai remplacé la source de mon sous formulaire par ce nouveau formulaire à la place de ma table.
J'ai testé d'enregistrer des participants, puis dans un second temps de les faire sortir. Ils disparaissent quand même des enregistrements effectués .
5 oct. 2023 à 15:21
Bon je crois que j'ai finalement réussi.
Peux tu me confirmer que le résultat obtenu correspond bien à ce que tu me proposais?
Au final, il fallait 3 formulaire :
- un formulaire 1 qui affiche les champs de la table "participant". Sur ce champs, j'applique la requête de filtre. En revanche sur ma table "participant", pour le champs "nom_participant", je n'applique pas la requête "residents_present"
- un autre formulaire 2 basée sur ma table "suivi des animations" avec le sous formulaire qui appelle la table "participant". Je remplace la table participant. Par le formulaire 1 précédent. Ce formulaire devient mon formulaire "d'ajout de participant". Il propose la liste filtrée des résidents.
- un dernier formulaire 3 basée sur ma table "suivi des animations" avec le sous formulaire qui appelle la table "participant". Je le laisse tel quel. Ce formulaire devient le formulaire de consultation. Il permet de consulter voire de modifier un participant, mais la liste des participants n'est pas actualisé par le critère de présence du résident.
Au final, si je sors un résident, dans mon formulaire 1 et 2, les noms des participants s'effacent. Mais pas dans le formulaire 3, ni dans ma table "participant". Les enregistrements résistent.
C'est bien ce que tu me proposais?
6 oct. 2023 à 07:56
J'ai ajouté des contraintes sur la table participants, pour empêcher d'avoir deux fois le même participant à la même animation. Cela devrait prévenir les anomalies que tu as observées en utilisant le bouton d'ajout.
6 oct. 2023 à 17:49
En cliquant sur le bouton au dessus "afficher toutes les actions". Cela ajoute des actions "dangereuses".
10 oct. 2023 à 10:38
Peux-tu marquer la discussion comme résolue?
4 oct. 2023 à 06:40
Bonjour,
Ce n'est pas ce que je souhaitais faire ici.
En revanche, c est quelque chose que je souhaiterai faire dans une prochaine étape.
Merci énormément pour la précision et la complétude de vos explications.
J ai compris plein de choses en vous lisant et avec vos captures en illustration.
Sincèrement merci.