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

Signaler
Messages postés
492
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
-
Messages postés
492
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
-
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 »!

1 réponse

Messages postés
12759
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 octobre 2020
710
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"?
Messages postés
492
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
28
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.
Messages postés
492
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
28
À 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!