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
|
Public Sub CreerBoutonCode(NombrePartie As Integer, NomForm As String)
Dim ctl As Control
'Ouvrir le formulaire en mode création
DoCmd.OpenForm NomForm, acDesign
'Crée un contrôle "Groupe d'options" :
Set ctl = CreateControl(NomForm, acCommandButton, , "", "", 2500, 800 + NombrePartie * 500, 1500, 300)
With ctl
'Définit un nom pour le contrôle
.Name = "Test"
'Déclare l'événement "Après mise à jour" du contrôle
.OnClick = "[Event Procedure]"
End With
'Normalement il ne nous reste plus qu'à écrire la procédure
'événementielle avec Module.CreateEventProc
'Mais étant donné que nous avons créé un groupe d'option
'il faut maintenant créer à l'intérieur,
'un contrôle pour chaque option (nous allons pour cela nous servir
'de l'argument "Parent" de la méthode CreateControl).
'Créons par exemple un bouton d'option :
'Set ctl = CreateControl(NomForm, acOptionButton, , ctl.Name, , 1500, 4000)
'With ctl
' .Name = "option1"
' .OptionValue = 1
'End With
'Et maintenant, création du code à éxécuter sur AfterUpdate de Options :
Dim mdl As Module
Dim lng As Long 'Sert à récupérer le numéro de la ligne d'insertion de la procédure
Set mdl = Forms![NomForm].Module
lng = mdl.CreateEventProc("OnClick", "Test")
mdl.InsertLines lng + 1, _
vbTab & _
"MsgBox " & Chr(34) & "Vous avez choisi 1." & Chr(34)
'"If(option1.value = 2) then MsgBox " & Chr(34) & "Vous avez choisi 1." & Chr(34)
'On libère mémoire allouées aux variables.
Set ctl = Nothing
Set mdl = Nothing
End Sub |
Partager