Poser votre question
0

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

posée 2020-09-25 13:12:51 +0100

Image Gravatar de Yves Gravot

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. C:\fakepath\Macros_READONLY.docx

Merci de votre aide, Cordialement, Yves Gravot

éditer requalifier signaler fermer fusionner supprimer

2Réponses

0

répondue 2020-09-30 14:17:36 +0100

Image Gravatar de Yves Gravot

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

éditer signaler supprimer permalien plus

Commentaires

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

Image Gravatar de mglmgl ( 2020-09-30 18:59:54 +0100 )éditer
0

répondue 2020-09-26 23:22:40 +0100

Image Gravatar de mgl

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

éditer signaler supprimer permalien plus

Commentaires

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,

Image Gravatar de Yves GravotYves Gravot ( 2020-09-30 14:13:05 +0100 )éditer
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2020-09-25 13:12:51 +0100

Consultée: 20 fois

Mise à jour: Sep 30