"Cocher/Décocher tout" dans sous-formulaire Access VBA
Résoluyg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tou(te)s,
Je me permets de faire ce post car je n’ai pas trouvé de réponse sur le forum.
J’ai une base de données avec un formulaire [Frm_OP] (rattaché à la table [Offre_de_prix]) dans lequel se trouve un sous-formulaire [Ssfrm_offres] (rattaché à la requête [Qry_offres], qui ne comporte aucun filtre, elle-même rattachée à la table [Tbl_offres]), qui contient une case à cocher [Exclusion] (créée dans la table [Tbl_offres]).
Après recherches et aides diverses sur des forums, j’ai créé le code VBA suivant pour les cases à cocher/décocher :
Option Explicit
***
Private Sub cocher_tout_Click()
Me.RecordsetClone.Edit
Me.RecordsetClone.Fields("Exclusion") = True
Me.RecordsetClone.Update
Me.RecordsetClone.MoveNext
End Sub
***
Private Sub decocher_tout_Click()
Me.RecordsetClone.Edit
Me.RecordsetClone.Fields("Exclusion") = False
Me.RecordsetClone.Update
Me.RecordsetClone.MoveNext
End Sub
En soi, la requête fonctionne (coche et décoche) MAIS elle ne se fait pas automatiquement pour toutes les lignes : je dois cliquer autant de fois qu’il y a de lignes dans mon sous-formulaire. Or, l’objectif est que l’intégralité des lignes soit cochée/décochée car il peut il y en avoir plusieurs centaines dans un même sous-formulaire.
Par ailleurs, je rencontre un second problème. Lorsque la dernière ligne du sous-formulaire est cochée/décochée, j'ai le message d'erreur suivant : "Erreur d'exécution '3021' : aucun enregistrement en cours" et il faut que je sorte du formulaire et rentre de nouveau pour pouvoir de nouveau cocher/décocher (le simple fait de changer d'enregistrement de formulaire ne suffit pas).
Je vous mets un visuel de mon formulaire avec des informations qui, à mon sens, peuvent peut-être aider à la compréhension (car je ne suis pas sûre d'avoir été très claire dans mon post).
Auriez-vous une idée d’où le problème pourrait venir ?
Je vous en remercie par avance.

- "Cocher/Décocher tout" dans sous-formulaire Access VBA
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Case à cocher word ✓ - Forum Word
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
1 réponse
bonjour,
En effet, ton code ne traite qu'un seul enregistrement, et passe au suivant. Quand il est au dernier, il provoque une erreur en tentant de passer au suivant. Je suggère de faire plutôt ainsi, et de parcourir tous les enregistrements, en commençant par le premier, jusqu'au dernier:
Me.RecordsetClone.MoveFirst do until Me.RecordsetClone.EOF Me.RecordsetClone.Edit Me.RecordsetClone.Fields("Exclusion") = True Me.RecordsetClone.Update Me.RecordsetClone.MoveNext loop
Je pense que cela va résoudre les deux problèmes que tu décris.
Bonjour,
Merciiiii !! Ca fonctionne parfaitement !
parfait, peux-tu alors marquer la discussion comme résolue?