---Soumis par Dev Ashish---
Énumérer tous les contrôles d'un formulaire.
(Q) Comment puis-je cycler au travers de tous les contrôle d'un formulaire pour en obtenir leur nom?
(A) Utiliser la fonction suivante comme exemple. Fournir le nom du formulaire et regarder la fenêtre d'exécution immédiate (Debug Window)!
Note: s'assurer de copier la fonction fIsLoaded fonction puisque fEnumControls l'utilise internement pour s'assurer que le formulaire à utiliser est ouvert.
'************ Code Start ***************
Function fEnumControls(ByVal strfrmToEnum As String)
'Imprime le nom des contrôle et leur type
'n'énumère pas les contrôle d'un sous-formulaire.
Dim astrCtlName() As String
Dim i As Integer, intCnt As Integer
Dim frm As Form
'Pour Access 95, enlever le commentaire des deux lignes suivantes
'Const acPage = 124
'Const acTabCtl = 123
'si le formulaire est fermé, terminer la fonction
If Not fIsLoaded(strfrmToEnum) Then
MsgBox "Form " & strfrmToEnum & " is probably closed!! " & _
vbCrLf & "Please open it & try again.", vbCritical
Exit Function
End If
Set frm = Forms(strfrmToEnum)
'Le nombre de contrôles
intCnt = frm.Count
'Initialiser la matrice qui contiendra les noms
ReDim astrCtlName(0 To intCnt - 1, 0 To 1)
For i = 0 To intCnt - 1
astrCtlName(i, 0) = frm(i).Name
'Utiliser ControlType pour déterminer le type de contrôle
Select Case frm(i).ControlType
Case acLabel: astrCtlName(i, 1) = "Label"
Case acRectangle: astrCtlName(i, 1) = "Rectangle"
Case acLine: astrCtlName(i, 1) = "Line"
Case acImage: astrCtlName(i, 1) = "Image"
Case acCommandButton: astrCtlName(i, 1) = "Command Button"
Case acOptionButton: astrCtlName(i, 1) = "Option button"
Case acCheckBox: astrCtlName(i, 1) = "Check box"
Case acOptionGroup: astrCtlName(i, 1) = "Option group"
Case acBoundObjectFrame: astrCtlName(i, 1) = "Bound object frame"
Case acTextBox: astrCtlName(i, 1) = "Text Box"
Case acListBox: astrCtlName(i, 1) = "List box"
Case acComboBox: astrCtlName(i, 1) = "Combo box"
Case acSubform: astrCtlName(i, 1) = "SubForm"
Case acObjectFrame: astrCtlName(i, 1) = "Unbound object frame or chart"
Case acPageBreak: astrCtlName(i, 1) = "Page break"
Case acPage: astrCtlName(i, 1) = "Page"
Case acCustomControl: astrCtlName(i, 1) = "ActiveX (custom) control"
Case acToggleButton: astrCtlName(i, 1) = "Toggle Button"
Case acTabCtl: astrCtlName(i, 1) = "Tab Control"
End Select
Next i
'Imprimer le tout joliement
Debug.Print "Control Name", "Control Type"
Debug.Print "------------", "------------"
For i = 0 To intCnt - 1
Debug.Print astrCtlName(i, 0), astrCtlName(i, 1)
Next i
Erase astrCtlName
End Function
'************ Code End ***************