Bonjour à tous,

Je souhaite créer un module de classe pour gérer certains événements des checkboxs d'un de mes formulaires. Pour ce faire j'ai extrapolé un module de classe qui marche parfaitement bien sur VBA excel. Malheureusement je n'arrive pas à le faire fonctionner sous Access, le logiciel ne relève pas d'erreurs en exécutant le code mais c'est pas pour autant que ça marche: les événements ne sont toujours pas gérés.

Voici ci dessous le code du module de classe "ControleAccessEvents"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Option Compare Database
Option Explicit
 
Public WithEvents mCheckboxes As Access.CheckBox
Public WithEvents mLabelGroup As Access.Label
Public WithEvents mTextBoxGroup As Access.TextBox
Public WithEvents mButtonGroup As Access.CommandButton
 
Private Sub mButtonGroup_Click()
'MsgBox (" has been pressed")
End Sub
 
Private Sub mLabelGroup_Click()
'MsgBox mLabelGroup.Caption & " backcolour is " & mLabelGroup.BackColor
End Sub
 
Private Sub mTextBoxGroup_Click()
End Sub
 
Private Sub mTextboxGroup_Change()
'MsgBox mTextBoxGroup.Name & " value is is " & mTextBoxGroup.Text
End Sub
 
Private Sub mCheckboxes_Click()
'MsgBox ("coucou")
End Sub
Voici le module qui assigne à la classe ControleAccessEvents les checkboxs de mon formulaire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Option Compare Database
Option Explicit
 
Dim mcolEvents As Collection
 
Sub Grp_ctrlAccess()
 
'pour rajouter tous les contrôles à la classe ControleAccessEvents
Dim cCBEvents As ControleAccessEvents
Dim cBtnEvents As ControleAccessEvents
Dim cLblEvents As ControleAccessEvents
Dim cTBEvents As ControleAccessEvents
Dim shp As Access.Control
Set mcolEvents = New Collection
 
For Each shp In Form_frmEvolutionAnalyses.Controls
 
    If TypeOf shp Is Access.CheckBox Then
        Set cCBEvents = New ControleAccessEvents
        Set cCBEvents.mCheckboxes = shp
        mcolEvents.Add cCBEvents
    ElseIf TypeOf shp Is Access.CommandButton Then
        Set cBtnEvents = New ControleAccessEvents
        Set cBtnEvents.mButtonGroup = shp
        mcolEvents.Add cBtnEvents
    ElseIf TypeOf shp Is Access.Label Then
        Set cLblEvents = New ControleAccessEvents
        Set cLblEvents.mLabelGroup = shp
        mcolEvents.Add cLblEvents
    ElseIf TypeOf shp Is Access.TextBox Then
        Set cTBEvents = New ControleAccessEvents
        Set cTBEvents.mTextBoxGroup = shp
        mcolEvents.Add cTBEvents
    End If
 
Next
Je n'arrive pas à comprendre pourquoi ça ne marche pas. Tous les conseils sont les bienvenus !!

Merci d'avance