BASE : Impossibilité de modifier les propriétés d'affichage

Bonjour,

J’ai dans une base de données un formulaire avec formulaire principal et sous-formulaire.

Dans un contexte particulier, je voudrais rendre non accessible ( le rendre protégé) le champ de mon sous formulaire en jouant sur les propriétés ( Visible = False and ReadOnly = True ) ou avec les procédures ACCESS2BASE :
Dim ocControl As Object
Set ocControl = Forms(“myForm”).Controls(“myControl”)
ocControl.Enabled = False
ocControl.Locked = True

J’obtiens l’erreur suivante : L’erreur #423 (Propriété ou méthode non trouvée : ) s’est produite à la ligne 354 dans AllForms

Ci-joint un fichier .doc avec la macro concernée.
Macros_READONLY.docx

Merci de votre aide,
Cordialement,
Yves Gravot

Bonsoir @Pierre-gravot

Je suis surpris par le texte

’ ocControl.Lock =True

Il me semble que ceci serait plus approprié :

’ ocControl.Locked =True

Est-ce utile ?

Cordialement, Michel

Merci Michel,

Effectivement la bonne codification est la suivante pour verrouiller un champ :
oControl.Enabled = False
oControl.Locked = True
et inversement pour déverrouiller :
oControl.Enabled = True
oControl.Locked = False

Cordialement
Yves,

Bonjour,

Je sais maintenant avec la séquence suivante intervenir sur les propriétés d’un CONTROL dans un formulaire.
Mais, malheureusement, la même séquence appliquée au control “SufForm_Grid” d’un sous formulaire ne marche pas.
Si quelqu’un a une explication, je suis preneur.
Merci

Sub Photo (poEvent As Object)

‘ macro activé sur le chargement et rechargement du formulaire
‘ rend le control PHOTO vérouillé
’ définition des variables du formulaire
Dim oForm As Object
Dim oControl As Object

Set oForm = Application.Events(poEvent).Source ’ Get the current form
Set oControl = oForm.Controls(“imgPHOTO”)
oControl.Enabled = False
oControl.Locked = True
MsgBox( "Control Image Photo : Verrouillée " )

End Sub

Bonsoir @yves-gravot

Je reviens avec mes remarques naïves. L’évènement concerne le formulaire. Donc l’objet oForm tel que défini ci-dessus sera le formulaire. Il faudrait peut-être partir de cet objet pour retrouver son sous-formulaire.

Bon courage, Michel