Menu

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

ButteDuLac 500 Messages postés jeudi 5 mars 2009Date d'inscription 16 avril 2018 Dernière intervention - 15 févr. 2017 à 03:04 - Dernière réponse : ButteDuLac 500 Messages postés jeudi 5 mars 2009Date d'inscription 16 avril 2018 Dernière intervention
- 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 »!

Afficher la suite 

3 réponses

yg_be 5873 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 24 juin 2018 Dernière intervention - 16 févr. 2017 à 21:25
0
Merci
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 500 Messages postés jeudi 5 mars 2009Date d'inscription 16 avril 2018 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.
ButteDuLac 500 Messages postés jeudi 5 mars 2009Date d'inscription 16 avril 2018 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!