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

Résolu
ButteDuLac Messages postés 534 Statut Membre -  
ButteDuLac Messages postés 534 Statut Membre -
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

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. ButteDuLac Messages postés 534 Statut Membre 41
       
      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
    2. ButteDuLac Messages postés 534 Statut Membre 41
       
      À 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