in vinum veritas
Le
jean marc
Bonjour à tous
Je voudrais vous soumettre un problème peu grave mais énervant.
Dans un formulaire [carnet], j'installe un contrôle avec liste déroulante.
Cette liste fait appel à une table [aoc] pour faciliter les choix de
l'utilisateur.
Cette table [aoc] possède deux champs : [appellation] et [région].
Comme il ya plusieurs appellations par région je veux limiter la liste
déroulante aux appellations correspondant à la région déjà entrée dans un
champ du formulaire et nommé lui aussi [région].
Alors j'entre ceci dans le contenu de la liste déroulante.
SELECT [aoc].[appellation] FROM [aoc] WHERE
[aoc].[région]=[forms].[carnet].[région];
Tout fonctionne d'abord bien, par exemple si la région du formulaire est
"bordeaux" j'obtiens les aoc de bordeaux uniquement.
L'ennui c'est que si ensuite je dois saisir un autre enregistrement la liste
reste "bloquée" sur bordeaux.
Si je commence par "alsace" elle reste bloquée sur les aoc d'alsace.
c'est le premier SELECT qui reste en place et qui me colle le clavier.
Auriez-vous une idée pour me sortir de ce mauvais pas.
J'ai bien sûr parcouru le bouquin de référence MS mais le mystère demeure.
Merci par avance.
P.S. : je précise que je n'ai pas consommé!
Jean Marc
Je voudrais vous soumettre un problème peu grave mais énervant.
Dans un formulaire [carnet], j'installe un contrôle avec liste déroulante.
Cette liste fait appel à une table [aoc] pour faciliter les choix de
l'utilisateur.
Cette table [aoc] possède deux champs : [appellation] et [région].
Comme il ya plusieurs appellations par région je veux limiter la liste
déroulante aux appellations correspondant à la région déjà entrée dans un
champ du formulaire et nommé lui aussi [région].
Alors j'entre ceci dans le contenu de la liste déroulante.
SELECT [aoc].[appellation] FROM [aoc] WHERE
[aoc].[région]=[forms].[carnet].[région];
Tout fonctionne d'abord bien, par exemple si la région du formulaire est
"bordeaux" j'obtiens les aoc de bordeaux uniquement.
L'ennui c'est que si ensuite je dois saisir un autre enregistrement la liste
reste "bloquée" sur bordeaux.
Si je commence par "alsace" elle reste bloquée sur les aoc d'alsace.
c'est le premier SELECT qui reste en place et qui me colle le clavier.
Auriez-vous une idée pour me sortir de ce mauvais pas.
J'ai bien sûr parcouru le bouquin de référence MS mais le mystère demeure.
Merci par avance.
P.S. : je précise que je n'ai pas consommé!
Jean Marc

Poser une question


tu as le choix entre rafraichir les donnees de la liste
nomdelaliste.Requery
(a placer dans le code de l'evnement AfterUpdate du controle Région)
ou
encore dans la propriete SOURCE de la liste ecris: =Région
J'ai déjà procédé mais ça ne marche pas.
C'est d'autant plus énervant que le pb doit être simple à régler.
Quand j'aurais trouvé je me mettrai certainement des baffes...
Enfin merci pour la réponse rapide
Et bonne nuit...
Jean Marc
nomdelaliste.ROWSOURCE="SELECT ..... WHERE Region
"jean marc"
Pas bon ca...
Il faut te fabriquer deux listes, la seconde dépendante de la première.
Dans la première, il n'y aura que les "regions"
La seconde (celle qui tu as faite) se limitera au choix de la première...
elle devient donc:
SELECT [aoc].[appellation] FROM [aoc] WHERE
[aoc].[région]=[forms].[carnet].[Liste_Région];
Il reste à la rafraîchir lorsque tu fait une sélection dans la première.
Cela se fait par un simple:
Me.Liste2.Requery
que tu mets dans l'événement sur "Après mise à jour" de la liste des régions.
OK ?
PS:
Voir ici pour un exemple complet de liste liées:
http://www.self-access.com/access/g...dir.php?id
--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome
... OK ?
C'est bien ça aussi que j'ai fait mais c'est le refresh qui marchait pas.
Je vous remercie pour vos réponses. J'ai trouvé la solution qui est en fait
(comme je le supposais très simple : une baffe comme promis !)
Je garde ma commande telle quelle et je rajoute un refresh... mais pas sur
update ou autre... simplement sur focus.. et ça marche...
Pour trouver j'ai mis des refresh partout et je les ai ôtés un par un...
Idiot... mais j'ai trouvé...
Merci encore