Forum Clubic

Liste changeante en fonction d'un autre

Bonjour à tous,

Voilà, je suis en train de créer une base de données sous Access et j’ai un problème.
Je voudrai qu’en fonction d’un choix dans une première liste, la seconde ne contienne que les champs correspondant à la premiére.
Pour faire clair, il s’agit d’un rangement de documents classé par Théme puis par Catégories.
J’ai créé une table Théme(code,nom) et Catégories(code,nom,nomtheme). Ces tables servent à contenir la liste des données pour la table Document contenant la liste des documents avec leur théme et catégories. Le problème est que quand je choisi le théme, dans catégorie j’ai accés à l’ensemble des catégories et non les catégories du thème :s
J’espére que vous pourrez m’aider car je suis bloqué avec cette requête :s
Voici la requete que j’ai tenté:

SELECT Catégories.NomCat
FROM Catégories , Documents
WHERE Catégories.CodeCat = Documents.CodeCatégorie
 Documents.NomTheme=Catégories.NomThéme;

En espérant votre aide, j’en ai vraiment besoin
merci et bonne journée :wink:
Edité le 17/06/2008 à 10:58

Ton choix dans la première liste, je suppose que tu le fais dans un formulaire, à l’aide d’une liste déroulante.
A cet objet liste déroulante, tu peux associer un évènement on change (sur changement, je crois, en access francisé), dans lequel tu vas demander la mise à jour de ton formulaire, ou même simplement uniquement de ta deuxième liste.
Et pour alimenter ta deuxième liste, une requête de selection, avec pour critère la valeur retournée par la première.

merci gcc
j’essaye et je te dirai ce qu’il en est :wink:


edit: Désolé mais je ne sais pas le code pour mettre à jour la seconde liste (j’ai un peu de mal en VB) Tu peux m’en dire plus stp? MErci par avance :wink:
Edité le 04/06/2008 à 15:39

Peut tu m’aider d’avantage? Merci

Tu ouvres ton formulaire en mode création
Tu cliques droit sur l’objet liste déroulante (1ère liste) et tu choisis propriétés
Dans évènements, tu choisis l’évènement sur changement, et là, il te propose soit d’associer une macro, soit d’écrire du code.
Pour écrire le code, tu cliques sur les trois petits points, il va t’ouvrir directement la bonne page et t’initialiser le sub

Merci.
Aurais tu une idée du code pour que le code change? Car je n’arrive pas à le faire fonctionner.
Merci

En traduction littérale, afficher tous les enregistrements donne
DoCmd.ShowAllRecords.
Mais il doit y avoir moyen aussi de faire quelque chose avec
me.refresh

ok merci beaucoup.
je vais voir ce que je peux faire :wink: