Bonjour,
Pour qu'une case à cocher soit utilisable dans ces conditions il faut qu'elle corresponde à un champ dans une table.
Le plus simple, mais le moins propre, est d'avoir (ou d'ajouter) ce champ de type Oui/Non, que nous nommerons Selection, dans la table contenant les informations à afficher dans la liste.
Par exemple la table Client si on veut sélectionner des clients.
Une fois que c'est fait on crée un formulaire en mode continu avec ce champ (Selection) et ce qu'on veut voir y figurer (Raison Sociale, Ville...)
Ajouter le boutons "Tous". "Quelques" je ne vois pas le fonctionnel qu'on peut mettre derrière ce bouton.
Le code sur ce bouton serait celui-ci :
1 2 3 4 5 6 7 8 9 10 11 12
| dim rst as Recordset
set rst = me.recordset 'l'ensemble des enregistrements du formulaire
docmd.echo false 'on gèle l'écran pour éviter le défilement
rst.movefirst 'on se place sur la première ligne
while not rst.eof 'tant qu'on est pas au dernier
me.selection.value = true 'le champ reçoit vrai (case cochée)
rst.movenext 'la ligne suivante
wend
docmd.echo true
set rst=nothing |
Un bouton "Aucun"
1 2 3 4 5 6 7 8 9 10 11 12
| dim rst as Recordset
set rst = me.recordset
docmd.echo false
rst.movefirst
while not rst.eof
me.selection.value = false 'idem mais case non cochée
rst.movenext
wend
docmd.echo true
set rst=nothing |
A partir de là l'appel de l'état pourrait être celui-ci.
docmd.openreport "Monetat",,,,"Selection=True"
Où "Selection=True" est la condition Where de la commande.
à la fermeture du formulaire ne pas oublier de faire un appel au bouton Aucun pour que cela soit propre.
Evidemment on aurait pu pousser le code la factorisation en réalisant une fonction.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Sub fCocheDecoche(isCochee as boolean)
dim rst as Recordset
set rst = me.recordset 'l'ensemble des enregistrements du formulaire
docmd.echo false 'on gèle l'écran pour éviter le défilement
rst.movefirst 'on se place sur la première ligne
while not rst.eof 'tant qu'on est pas au dernier
me.selection.value = isCochee 'le champ reçoit vrai ou faux (case cochée)
rst.movenext 'la ligne suivante
wend
docmd.echo true
set rst=nothing |
L'appel se fera alors ainsi :
Sur le bouton Tous :
Sur le bouton Aucun :
Et pour être propre dans l'évènement sur Fermeture du formulaire :
Tout ce code doit être inclue dans le code formulaire.
Cordialement,
Partager