Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

in vinum veritas

5 réponses
Avatar
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

5 réponses

Avatar
Ilan
Bonjour,
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


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








Avatar
jean marc
Bonjour,
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

Bonsoir....


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

Avatar
Ilan
Alors reecris le rowsource

nomdelaliste.ROWSOURCE="SELECT ..... WHERE Region

Bonjour,
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

Bonsoir....


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





Avatar
3stone
Salut,

"jean marc"
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];



Pas bon ca...


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.



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/grenier/acRedir.php?id


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome

Avatar
jean marc
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.

... 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