Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

Forms: Énumérer tous les contrôles d'un formulaire

Author(s)
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 joliment
    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 ***************

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer