Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/05/2011, 17h31   #1
Futur Membre du Club
 
Homme
Inscription : avril 2011
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 48
Points : 15
Points : 15
Par défaut Formulaire en mode continu et listes déroulantes interdépendantes

Bonjour,

Je rencontre un problème et bien qu'épluchant la toile, je ne trouve de solution...

Voilà le soucis:
Dans un formulaire de saisie d'informations pour des zones géographiques, j'ai placé un certain nombre de listes déroulantes pour les choix.
Ainsi, une liste déroulante "Départements", une fois mise à jour, fait un requery de la liste "Communes" afin que seules les communes du département sélectionné n'apparaissent dans la liste.

Jusque là, pas de problème...

Cependant, devant saisir de nombreuses zones géographiques dans l'utilisation de l'application que je développe, il est nécessaire de mettre ce formulaire sous forme de formulaires continus.
Pour le premier enregistrement, pas de problème, tout va bien.
Mais pour la deuxième ligne, si je sélectionne un département différent de celui de la première ligne, la valeur de la commune disparait dans la première ligne...

Une solution pour que la valeur "Commune" reste?

Il semblerait que mon requery mette à jour tous les champs du sous-formulaire et non juste celui de la ligne active.
Malgré la disparition "visuelle" de ma valeur "Commune", celle-ci se retrouve bien dans ma table...

Donc tout cela est juste une question d'apparence, mais ça jour beaucoup

Merci pour votre aide
Farabon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 18h29   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
en effet, quand tu filtres une liste déroulante, les valeurs déjà saisies n'apparaissent si elles ne font pas partie de la sélection (euh je viens de vérifier: seulement dans le cas où la colonne affichée n'est pas la colonne stockée)
une solution est d'avoir les listes déroulantes dans l'entête ou dans le pied
et d'avoir des zones simples dans le détail avec un transfert à chaque sortie de case
une autre solution est d'avoir la zdl en double sur la même source: une filtrée, l'autre non (voir une qui affiche le code insee et qui est filtrée, l'autre qui affiche le nom et qui n'est pas filtrée)
ou de se satisfaire de ce désagrément

PS quel identifiant as tu choisi de stocker pour la commune? le nom n'est pas unique le code postal non plus, seul le code insee l'est
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 09h39   #3
Futur Membre du Club
 
Homme
Inscription : avril 2011
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 48
Points : 15
Points : 15
Salut,

Désolé pour la réponse tardive, mais je suis en débuguage de mon appli et j'ai pas mal de trucs à faire dessus... Maintenant ce problème reste un des principaux...

J'ai bien pris le code INSEE comme clé primaire de ma table "Communes", ce qui permet un identifiant unique.

Il y a certaines choses dans ton post que je n'ai pas comprises...

Pour que ma sélection initiale de commune reste, il faudrait que j'affiche le code INSEE stocké seulement?
Mon formulaire de saisie a comme source une table temporaire où est enregistrée l'INSEE. Ma zone de liste, permettant la sélection de l'INSEE, a comme source une table "Communes" où INSEE et "Nom_commune" sont sélectionnés, filtrée par département (Having INSEE like "département_sélectionné"+"*"). Pour avoir les résultats qui restent, je dois faire un lien entre INSEE de ma table temporaire et de ma table communes?

Je n'ai pas compris le principe de liste en double...

Merci!
Farabon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 10h07   #4
Futur Membre du Club
 
Homme
Inscription : avril 2011
Messages : 48
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2011
Messages : 48
Points : 15
Points : 15
J'ai trouvé!

C'est en mode bidouillage, mais ça marche!

Donc voilà, je garde comme source du sous-formulaire ma table temporaire. Cependant, je fais des liaisons entre mes INSEE de la table temporaire (il y en a jusqu'à 3) et ma Table des Communes (3 fois, en affichant 3 fois la table dans la création de requêtes, et pas 3 liaisons sur une seule table), et ce en Left Join bien sûr (évite les erreurs au cas où il n'y ait pas de Comme n°2 ou 3.

Ensuite, je garde ma liste "Département" et ma liste "Commune" avec le même système de filtrage: Sélection d'un département => Requery de ma liste "Commune" avec where INSEE="Departement"+"*".
Cependant, je réduis ma liste commune à sa simple flèche (elle existe toujours, mais seule la flèche de sélection est visible, pas le résultat sélectionné), et à la place de la zone de texte de la liste, je met une zone de texte normale, ayant pour source le nom commune correspondant de ma requête source de sous-formulaire.
La sélection de la commune dans ma liste met à jour ce champ, qui ne bougera plus.

Voilou, petite astuce de bout de ficelle, mais comme de nombreux gens rencontrent ce problème, j'ai fait part de mes découvertes.

Merci!
Farabon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h47.


 
 
 
 
Partenaires

Hébergement Web