Faire référence à bouton de navigation dans une macro

Résolu/Fermé
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 15 févr. 2017 à 03:04
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 17 févr. 2017 à 02:24
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 »!

A voir également:

1 réponse

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
16 févr. 2017 à 21:25
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"?
0
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 40
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.
0
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 40
Modifié par ButteDuLac le 17/02/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!
0