4 astuces avancées pour PowerPoint et une astuce Bonus
Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire sur Access ?
1. Votre Assistante : https://www.votreassistante.net - le 01/02/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
1
Comment cocher et décocher des cases à cocher en 1 clic dans un
formulaire sur Access ?
Dans une base de données Access, vous pouvez avoir besoin de cocher/décocher des cases qui
se trouvent dans plusieurs enregistrements dans un formulaire affiché en mode Formulaires
continus. Cela peut vous servir à effectuer une mise à jour ou suppression en masse, voire à
exporter plusieurs factures en PDF via une boucle en langage VBA : tout dépend de la
procédure événementielle que vous créez (en cliquant sur un bouton par exemple) et qui prendra
en compte les cases cochées ou non. Dans ce tutoriel, nous allons voir comment cocher et
décocher des cases en un seul clic dans un formulaire Access :
Présentation de la base de données utilisée
Pour ce tutoriel, je vais partir d’une base de données simple comportant une table T_Clients
avec des informations classiques (prénom, nom, adresse, etc.) et son formulaire avec un
affichage en Formulaires continus afin que les enregistrements se retrouvent les uns en dessous
des autres. La particularité est que j’ai rajouté un champ de type Oui/Non nommé Selection
dans la table T_Clients et dans son formulaire, car même si je n’ai besoin de cette information
que pour la sélection/désélection des cases à cocher, il faut bien que l’information soit stockée
quelque part.
2. Votre Assistante : https://www.votreassistante.net - le 01/02/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
2
Ajout de boutons pour cocher/décocher les cases à cocher dans le formulaire
Pour cocher ou décocher les cases en un seul clic, je vais me servir de boutons. Pour cela, en
Mode Création du formulaire F_Clients, dans le menu Conception de
formulaires, je clique sur Bouton et fait un clic dans l’en-tête de mon formulaire. Si
vous avez la commande Utiliser les Assistants Contrôle activée, l’assistant s’ouvre. Ici, nous
n’en avons pas besoin, fermez-le en cliquant sur Annuler.
Dans le menu Format, je lui applique le Style rapide Effet intense – Or, 4 accentué et,
dans la Feuille de propriétés (si elle n’est pas affichée, cliquez sur Feuille de
propriétés dans le menu Conception de formulaires), à la ligne Légende de
l’onglet Format, j’écris Cocher et je fais de même aux lignes Nom et Texte d’info-bulle de
l’onglet Autres. De retour dans l’onglet Format de la Feuille de propriétés , je
clique sur les 3 points au bout de la ligne Image et je choisis l’icône Marque avant
de cliquer sur OK.
Tout en gardant sélectionné mon bouton, je fais un Ctrl + C, puis Ctrl + V pour dupliquer le
bouton et je vais simplement modifier l’image de ce nouveau bouton dans la Feuille de
propriétés en remplaçant Marque par Supprimer . Enfin, à la ligne
Légende, j’écris Décocher, de même qu’à la ligne Texte d’info-bulle, mais pour la ligne Nom,
j’écris Decocher, car il faut éviter les accents en VBA et nous en aurons besoin dans un instant.
3. Votre Assistante : https://www.votreassistante.net - le 01/02/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
3
Dans mon exemple, je vais donc utiliser un Bouton pour cocher et un autre pour décocher.
Je trouve cela plus simple qu’un Bouton bascule , d’une part, au niveau de la
programmation et, d’autre part, cela évite d’avoir à cliquer 2 fois sur le bouton selon son état.
Enfin, je place ces 2 boutons au-dessus de la case à cocher de la partie Détail.
Écriture du code SQL pour le bouton Cocher
Pour cocher plusieurs cases en même temps, nous allons utiliser une requête mise à jour, mais
écrite en VBA via du SQL. Si vous n’êtes pas familier avec le SQL, pas d’inquiétude, il y a une
astuce pour l’écrire sans erreur. Nous pourrions d’ailleurs conserver une requête en tant qu’objet
et la lancer en VBA, mais, personnellement, je préfère quand il y a le moins d’objets possible
dans une base de données Access.
Rendez-vous dans le menu Créer > Création de requête . Par le clic du bouton
Cocher, nous souhaitons cocher tous les enregistrements du formulaire F_Clients sachant que
ce dernier affiche tous les enregistrements de la table T_Clients sans aucun filtre. Si vous
utilisez des filtres, il faudra également les ajouter à votre requête, sinon celle-ci n’en tiendra pas
compte. Via le panneau Ajouter des tables (s’il n’apparaît pas, cliquez sur Ajouter des
tables dans le menu Conception de requêtes), je double-clique sur la table
T_Clients, puis, simplement, sur le champ Selection de la table. Dans le menu Conception de
requêtes, je clique sur Mise à jour pour créer une requête Mise à jour et, sur la nouvelle
4. Votre Assistante : https://www.votreassistante.net - le 01/02/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
4
ligne qui est apparue dans la grille (Mise à jour), je saisis Vrai dans le but de cocher tous les
enregistrements :
L’astuce pour récupérer le code SQL de cette requête est de faire un clic droit sur l’onglet
Requête1 > Mode SQL , puis de faire un Ctrl + C pour copier la sélection. Je
peux ensuite fermer la requête sans l’enregistrer.
Programmation en langage VBA du bouton Cocher
Je retourne, maintenant, dans le formulaire F_Clients, toujours en Mode
Création et je clique sur le bouton Cocher, puis, dans la Feuille de
propriétés , à l’onglet Évènement, je clique sur les 3 points au bout de la ligne Au
clic et je choisis le Générateur de code : cela ouvre la fenêtre VBA.
Nous allons coller le code SQL sous forme de chaîne de caractères, j’écris donc, dans la
procédure :
MAJCase = "UPDATE T_Clients SET T_Clients.Selection = True"
1
où MAJCase est le nom que je donne à cette chaîne de caractères, mais vous pouvez l’appeler
autrement, et, entre guillemets, se trouve le code copié depuis la requête sans le point-virgule (;)
de fin.
En dessous, j’écris :
DoCmd.RunSQL MAJCase
1
qui permet, comme son nom l’indique, d’exécuter une procédure nommée MAJCase. Il est
toujours préférable de déclarer ses variables, c’est pourquoi je vais écrire :
Dim MAJCase As String
1
en dehors de la procédure, sous Option Explicit, car nous utiliserons également cette variable
pour le bouton Décocher.
5. Votre Assistante : https://www.votreassistante.net - le 01/02/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
5
Comme il s’agit d’une requête Mise à jour, si je laisse ma procédure en l’état, j’aurais les
messages classiques qu’Access affiche lorsqu’on exécute une requête action, or je souhaite que
cela reste assez transparent pour l’utilisateur et je ne souhaite pas qu’il soit perdu en voyant des
messages d’avertissement apparaître et qu’il ne sache pas quoi faire.
Pour cela, nous allons utiliser 2 lignes de code que j’ai déjà abordées dans le tutoriel Liste des
principaux codes VBA que j’utilise sur Access.
J’écris donc en début de procédure :
DoCmd.SetWarnings False
1
Et, en fin de procédure :
DoCmd.SetWarnings True
1
N’oubliez surtout pas cette deuxième ligne, sinon vous ne serez plus averti de rien, même pas
de la suppression accidentelle d’une table par exemple.
Pour terminer, ajoutez Refresh avant la fin de la procédure pour rafraîchir le formulaire. Je
ferme la fenêtre VBA.
Programmation en langage VBA du bouton Décocher
Maintenant que notre bouton Cocher est programmé, nous allons passer au bouton Décocher.
Cette fois, il est inutile de passer de nouveau par une création de requête puisqu’il faut
simplement changer la mise à jour de True (Vrai) à False (Faux).
Cliquez sur le bouton Décocher du formulaire en Mode Création et
cliquez sur les 3 points au bout de la ligne Au clic de l’onglet Évènement de la Feuille de
propriétés pour ouvrir de nouveau le Générateur de code.
Ici, contentez-vous de copier les 5 lignes qui se trouvent à l’intérieur de la procédure du bouton
Cocher et de les coller dans la procédure du bouton Décocher avant de changer le mot True en
False à la ligne où est écrit le code SQL.
6. Votre Assistante : https://www.votreassistante.net - le 01/02/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
6
Il ne me reste plus qu’à fermer la fenêtre VBA et à enregistrer le formulaire pour le tester en
Mode Formulaire : un clic sur le bouton Cocher coche toutes
les lignes et un clic sur le bouton Décocher les décoche.
Vous retrouverez le fichier utilisé dans l’Espace Membres accessible aux abonnés à la
newsletter.
Découvrez ma formation complète pour créer votre propre application Access afin
d’automatiser un maximum de vos tâches quotidiennes et devenir plus efficace.
Tutoriel réalisé avec Access Microsoft 365
Voir la version vidéo de cet article