Bonjour à tous

Après avoir bien profiter des nombreuses astuces de ce forum, je voulais ajouter ma petite contribution.

Exposé du problème :

Afficher une zone de liste contenant une liste de coloris tirée d'une table Tbl_Coloris (Id,Coloris,masqué) et filtré uniquement sur les coloris en cours
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
rowsource="SELECT DISTINCTROW tbl_couleur.id, tbl_couleur.Couleur,tbl_couleur.masquée
FROM tbl_couleur WHERE ((tbl_couleur.masquée)=False));"
Le problème, si on affiche un enregistrement ancien contenant un coloris archivé (masqué), la zone de liste n'affiche pas ce champ.

l'astuce consiste à modifier la requête de façon à inclure le coloris en cours même s'il est masqué :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT DISTINCTROW tbl_couleur.id, tbl_couleur.Couleur,tbl_couleur.masquée
FROM tbl_couleur 
WHERE (((tbl_couleur.masquée)=False)) OR (((tbl_couleur.id)=[Formulaires]![Saisie]![Couleur_Numéro]));

Il faut également rajouter dans l'évènement activation du formulaire un rafraichissement de la zone de liste de façon qu'à chaque changement d'enregistrement la requête soit actualisée.

De cette façon, la zone de liste ne présentera que les coloris en cours mais également celui de l'enregistrement en cours même si le coloris n'est plus d'actualité.