---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 ***************