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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Sub AutoCreateProc(pNomForm as string)
'Création en masse de procédures événementielles
Dim Frm As Form
Dim ctl As Control, mdl As Module
Dim strTexteLigne As String
Dim lngReturn As Long
Dim itArret As Integer
' Ouverture du formulaire en mode création et masqué
DoCmd.OpenForm pNomForm, acDesign, , , , acHidden
Set Frm = Forms(pNomForm)
Set mdl = Frm.Module
Frm.HasModule = True
For Each ctl In Frm.Controls
If ctl.ControlType = acRectangle Then
' Création des procédures événementielles Click pour les contrôles de type Rectangle si inexistant
If ctl.OnClick = "" Then
lngReturn = mdl.CreateEventProc("Click", ctl.EventProcPrefix)
' On récupère le nombre du contrôle
itArret = Val(ctl.Name)
' ------------- Insertion des lignes de code -----------------------------
' Création du texte du code ligne 1
strTexteLigne = "Me![arret] = " & itArret
' Insertion du code de la ligne 1
lngReturn = lngReturn + 1
mdl.InsertLines lngReturn , vbTab & strTexteLigne
' Création du texte du code ligne 2
strTexteLigne = "Me![CommuneDep] = Dlookup(""Commune"", ""Donnees"", ""cle=" & itArret & """)"
' Insertion du code de la ligne 2
lngReturn = lngReturn + 1
mdl.InsertLines lngReturn , vbTab & strTexteLigne
' Création du texte du code ligne 3
strTexteLigne = "Me![ArretDep] = Dlookup(""Arrêt"", ""Donnees"", ""cle=" & itArret & """)"
' Insertion du code de la ligne 3
lngReturn = lngReturn + 1
mdl.InsertLines lngReturn , vbTab & strTexteLigne
' Création du texte du code ligne 4
strTexteLigne = "DoCmd.OpenForm ""TrajetsDispo"", , , , , acDialog"
' Insertion du code de la ligne 4
lngReturn = lngReturn + 1
mdl.InsertLines lngReturn , vbTab & strTexteLigne
' Activation de la procédure évènementielle
Frm.Controls(ctl.Name).OnClick = "[Event Procedure]"
End If
End If
Next ctl
' Sauvegarde des modifications
DoCmd.Save acForm, Frm.Name
DoCmd.Close acForm, Frm.Name, acSaveYes
End Sub |
Partager