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
| Function Trois_Boutons()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim ctl As Control
Dim strNomLieu As String
Dim iLieu As Integer
Dim iBas As Integer
Dim iTailleForm As Integer
Dim iPos As Integer
Set db = Application.CurrentDb
Set rst = db.OpenRecordset("MaTable", dbOpenTable)
'connaitre le nombre de lieux, c'est à dire le nombre de boutons à ajouter
iLieu = rst.RecordCount
'si j'ai 3 lieus, 3 boutons, je dois avoir 4 espaces entre les boutons (au dessus et en dessous)
iLieu = iLieu + 1
iTailleForm = 2000 'j'imagine que la taille de ton formulaire est de 2000
'calculer un increment vers le bas. Chaque bouton sera un peu plus bas que le precedent
'Si tu as dix boutons ils seront assez serrés l'un contre l'autre, si tu en a 3, il y aura plus d'espace entre les boutons
iBas = Int(iTailleForm / iLieu)
'iPos est la position par rapport au Top du formulaire
'ipos initial =
iPos = iBas
's'assurer qu'on commence au début.
rst.MoveFirst
Do Until rst.EOF
'parcourir la table du début à la fin
strNomLieu = rst!Lieu 'J'imagine que ta table contient un champ nommé "Lieu"
'insérer ici ton code :
Set ctl = Application.CreateControl("frmLocal", acCommandButton, , , , 2000, iPos, 2500, 300)
With ctl
.Name = "cmd" & strNomLieu
.Caption = "Bouton " & strNomLieu
End With
Set ctl = Nothing
'incrementer la position pour afficer le prochain bouton un peu plus bas
iPos = iPos + iBas
rst.MoveNext
Loop
Set rst = Nothing
Set db = Nothing
'il te reste à fermer et sauver ton formulaire
End Function |
Partager