Bonjour,
J'ai créé un menu à l'aide du tutoriel disponible ici et ça fonctionne bien. J'ai un sous-menu intitulé Matériel et diverses sous-sous menus associés décrivant l'etat de ce matériel (en état, en panne, etc ...). J'aimerais ouvrir le même formulaire en filtrant les enregistrements et ce, en appuyant sur les divers boutons du sous-sous menu correspondant.
Pour cela, j'ai écrit des procédures déclenchées par la propriété OnAction du bouton correspondant de mon menu comme suit :
La variable VpMenu (Publique) est récupérée dans mon formulaire FrmMateriel sur l'événement Open form et analysée. Elle filtre les enregistrements comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Public Sub CmdSpareSousTension() VpMenu = "SpareSousTension" DoCmd.OpenForm "FrmMateriel", acNormal End Sub Public Sub CmdSpareHorsTension() VpMenu = "SpareHorsTension" DoCmd.OpenForm "FrmMateriel", acNormal End Sub
Ca fonctionne bien pour la première action. Mais quand je retourne dans mon menu et que je prends un autre critère (le formulaire étant déjà ouvert), le formulaire ne se met pas à jour avec mon nouveau filtrage. En fait, quand mon formulaire est ouvert il ne s'ouvre pas une deuxième fois même en cliquant sur une autre option du menu. Par conséquent, je ne génère pas d'événement Open Form et donc mon analyse n'est pas faite pour les autres fois ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Form_Open(Cancel As Integer) Dim StrCritere As String Select Case VpMenu Case "SpareSousTension" StrCritere = "Equipement Disponible pour Maintenance" Case "SpareHorsTension" StrCritere = "Equipement en Etat mais Hors Tension" End Select Me.Filter = "DescStatEqp = " & Chr(34) & StrCritere & Chr(34) Me.FilterOn = True End Sub
Aucun autre événement du formulaire n'est d'ailleurs visité lorsqu'on appuie sur un autre sous-sous menu (j'ai vérifié).
Comment faire alors ?
Dois-je tester si mon formulaire est déjà ouvert pour le fermer et le réouvrir avec le nouveau filtre ?
C'est peu élégant ...
Merci pour votre aide.
Partager