Verrouiller les contrôles d'un formulaire


Description  
Cette fonction permet de verrouiller un type de contrôle bien précis ou la totalité des contrôles d'un formulaire. Cette fonction retournera True si elle c'est exécuté correctement.
 
Synthaxe  

Variable_Boolean = LockedControls(strForm[, ControlType])

La synthaxe de la fonction LockedControls comprend les éléments suivants :

Eléments Description
strForm Expression de chaîne contenant le nom du formulaire dont on souhaite verrouiller les contrôles. Si l'argument strForm est une chaîne de longueur Null (""), la fonction LockedControls sera annulée et retournera la valeur False.
ControlType

Facultatif. Valeur numérique indiquant le type de contrôle que l'on souhaite verrouiler. Si elle est omise, tous les types de contrôles du formulaire seront verrouillés. Reportez-vous à la section Valeurs.

Section Valeurs :
L'argument ControlType prend les valeurs suivantes

Constante Valeur Description
acBoundObjectFrame 108 Cadre d'objet dépendant
acCheckBox 106 Case à cocher
acComboBox 111 Zone de liste modifiable
acCommandButton 104 Bouton de commande
acCustomControl 119 Contrôle ActiveX (personnalisé)
acImage 103 Image
acLabel 100 Etiquette
acLine 102 Trait
acListBox 110 Zone de liste
acObjectFrame 114 Cadre d'objet indépendant ou graphique
acOptionButton 105 Bouton d'options
acOptionGroup 107 Groupe d'options
acPage 124 Page
acPageBreak 118 Saut de page
acRectangle 101 Rectangle
acSubform 112 Sous-formulaire / Sous-tata
acTabCtl 123 Onglet
acTextBox 109 Zone de texte
acToggleButton 122 Bouton bascule
 
Exemple  

Si l'on souhaite verrouiller tous les contrôles du formulaire "Form1" et récupérer le résultat de la fonction dans une variable, on procèdera de la manière suivante :

Dim blnResultat as Boolean
blnResultat = LockedControls ("Form1")

Si par contre on avait souhaité verrouiller uniquement les zones de texte de ce même formulaire, on aurait procédé de la manière suivante :

Dim blnResultat as Boolean
blnResultat = LockedControls ("Form1", acTextBox)

Dans ces 2 exemples, si la fonction se déroule normalement, la variable blnResultat retournera True.

 
Code de la fonction  


Public Function LockedControls(strFrm As String, _
    Optional ControlType As AcControlType) As Boolean

Dim frm As Form
Dim ctl As Control

If IsNull(strFrm) Or strFrm = "" Then Exit Function

DoCmd.Echo False
DoCmd.OpenForm strFrm, acDesign

Set frm = Forms(strFrm)
For Each ctl In frm.Controls
    If IsMissing(ControlType) = True Then
        ctl.Locked = True
    Else
        If ctl.ControlType = ControlType Then
            ctl.Locked = True
        End If
    End If
Next

DoCmd.Close acForm, strFrm, acSaveYes
LockedControls = True
DoCmd.Echo True

End Function

 

 

Retour haut de page

Auteur : Jessy SEMPERE