Bonjour.
À vrai dire sauf si j'ai raté quelque chose tu as besoin de 8 x 2 listes déroulantes puisqu'un échiquier ne comporte que 8 cases. Et c'est toujours les "mêmes" listes. Seul le nom des contrôles va changer.
Pourquoi x 2 car si tu utilises des listes dépendantes, les éléments qui ne sont pas dans la liste disparaissent. Il te faut donc une liste pour la sélection et une liste pour l'affichage.
Une fois que tu as crée les 2 premières, il suffit de les recopier 7 fois et de donner aux copies des noms significatifs du genre lstChoixPion2, lstAffPion2Pour alimenter ta liste de sélection il suffit de faire une requête qui mets en relation la table des pions et la table des Échiquiers/Pions. Si un poin est déjà dans Échiquiers/Pions il ne faut pas le sélectionner.
Quand tu arrives sur la liste (évènement Sur Réception du focus) tu peux utiliser du code qui ressemble à :
1 2 3 4 5
| public function MAJListeCHoix(prmListe as combobox)
dim db as doa.database:set db=currentdb
prmListe.recordsource=db.querydef("reqChoixPion")
db.close:set db=nothing
end sub |
1 2 3
| public function RAZListeCHoix(prmListe as combobox)
prmListe.recordsource=Null 'Évite l'effet guirlandes de noël où les données apparaissent et disparaissent en fonction des changements dans la liste
end sub |
Dans l'évènement sur réception du focus mettre la valeur suivante :
=MAJListeCHoix([lstChoixPionX])
Où X vaut 1 à 8.
Dans l'évènement sur perte du focus mettre la valeur suivante :
=RAZListeCHoix([lstChoixPionX])
Où X vaut 1 à 8.
A+
Partager