Signaler

Faire référence à bouton de navigation dans une macro [Résolu]

Posez votre question ButteDuLac 484Messages postés jeudi 5 mars 2009Date d'inscription 21 avril 2017 Dernière intervention - Dernière réponse le 17 févr. 2017 à 02:24 par ButteDuLac
Bonjour,

J'ai un formulaire de navigation, contenant deux sections (onglets du haut) : [INF] et [GES].

Chaque section comporte différents boutons de navigation (onglets de gauche).

Lorsqu'on ouvre la BDD, par défaut, c'est la section INF qui est affichée.

J'aimerais que, dans le formulaire d'accueil de cette section, il y ait un mot de passe à entrer afin d'activer les boutons de navigation associés à l'onglet INF.
(Puis, dans la section GES, la même chose pour activer les boutons de navigation de cette section.)

Je sais comment créer un menu avec un contrôle de mot de passe qui active les boutons de commande « dans le formulaire » en question. Sauf que cette fois-ci, mon contrôle de mot de passe et le bouton de commande (Accéder) est situé dans un formulaire (F_Accueil_INF ou F_Accueil_GES) qui apparait dans la fenêtre interne du formulaire de navigation (F_Accueil), comme un sous-formulaire, alors que les boutons de navigation que je veux activer sont dans le formulaire F_Accueil.

Je n'arrive pas à trouver comment faire référence à ces boutons, en VBA (je n'y suis pas parvenue non plus avec l'assistant de création de macro d'Access).
À force d'essais erreur, le mieux que j'ai pu faire jusqu'à maintenant, c'est :
Si [MDP_inf]="*******" alors
DéfinirPropriété
Nom du contrôle : Formulaires!F_Accueil.Controls!BtnSaisie
Propriété : Activé
Valeur : True

(Ça, c'est avec l'assistant... en VBA, ça donnerait, je pense :
Private Sub Commande6_Click()
If Me.MDP_inf = "*******" Then
Formulaires!F_Accueil.Controls!BtnSaisie.Enabled = True
Else: Formulaires!F_Accueil.Controls!BtnSaisie.Enabled = False
End If
End Sub


Mais rien ne fonctionne. J'ai sûrement une erreur quelque part, mais j'ignore où. À moins que ce que je souhaite faire soit impossible?

Est-ce possible???

(Sinon, j'ai envisagé mettre deux zones de mot de passe, l'une pour GES et l'autre pour INF directement dans le haut du F_Accueil, mais ça ne fait pas très « joli »!

Afficher la suite 
Utile
+0
plus moins
bonsoir, et ainsi?
Private Sub Commande6_Click()
If Me.MDP_inf = "*******" Then
    Formulaires!F_Accueil.Controls!BtnSaisie.Enabled = True
Else
    Formulaires!F_Accueil.Controls!BtnSaisie.Enabled = False
End If
End Sub

tu as un message d'erreur? que signifie "rien ne fonctionne"?
ButteDuLac 484Messages postés jeudi 5 mars 2009Date d'inscription 21 avril 2017 Dernière intervention - 17 févr. 2017 à 02:22
En fait, hier (avec les : ), ça donnait une erreur dont j'ai oublié le nom...


Aujourd'hui, ça donne « Erreur d'exécution '424': Objet requis»

Flèche jaune de bogue se place sur la ligne 3.
Répondre
ButteDuLac 484Messages postés jeudi 5 mars 2009Date d'inscription 21 avril 2017 Dernière intervention - 17 févr. 2017 à 02:24
À force...

J'ai essayé de déclarer mon formulaire, et Eurêka!

En faisant Dim Facc as F... la réponse m'est apparue! C'était :

Private Sub Commande6_Click()

If Me.MDP_inf = "*******" Then
Form_F_Accueil.BtnSaisie.Enabled = True
Else
Form_F_Accueil.BtnSaisie.Enabled = False
End If

End Sub


Comme quoi on ne peut vraiment pas se fier au générateur de macro d'Access pour nous guider dans la syntaxe!

Merci, yg_be pour le support moral!
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !