Bonsoir,
A partir d'un menu personnalisé conçu grâce à un tutoriel trouvé ici (merci), j'ouvre un formulaire basé sur une requête (listant l'ensemble des cartes électroniques en stock) et je filtre certains enregistrements (exemple: concernant le matériel disponible et en état). J'utilise l'événement OpenForm pour pièger une variable strCritereStatut (déclarée en déclaration du code) correspondant à l'option de mon menu comme suit :
Dans mon formulaire j'ai une batterie de bouton correspondant à divers types d'appareils. Quand j'appuie sur le bouton BpMux, j'aimerais que mon formulaire soit filtré pour afficher les cartes en état (donc déjà filtrées) ET correspondantes à mon type d'appareil (Mux). J'utilise le code suivant sur l'événement clic du BpMux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Form_Open(Cancel As Integer) strCritereStatut = "DescStatEqp = " & Chr(34) & Application.CommandBars.ActionControl.Caption & Chr(34) End Sub
Seulement, ça ne fonctionne pas, tous les enregistrements disparaissent. Si j'utilise la ligne passée en commentaires, je trouve bien mes cartes de type MUX mais dans tous les statuts possibles (pas uniquement en état). Je pense qu'il s'agit d'un problème de syntaxe ou d'écriture. Je n'ai pas de message d'erreur ceci dit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub BpMux_Click() Dim strCritere As String DoCmd.ShowAllRecords strCritere = strCritereStatut & " AND TypChassis = " & Chr(34) & "MUX" & Chr(34) 'strCritere = "TypChassis = " & Chr(34) & "MUX" & Chr(34) Me.Filter = strCritere Me.FilterOn = True MsgBox strCritere Me.Requery End Sub
La ligne Msgbox me permet de contrôler que la ligne qui sera écrite dans le filtre du formulaire est cohérente. Et c'est le cas ...
Si quelqu'un a une proposition.
Merci.
Partager