Bonjour ... Je me permet de poster encore une fois sur le forum car je suis un peu bloqué ...
Viola j'ai voulu mettre en place un systeme de filtre determiné par une Zone de Liste attaché a un formulaire pour afficher le resultat dans un sous-formulaire.
Maintenant lors de l'excecution de la partie VBa pour appliquer le filtre et donc afficher le resultat, le comportement suivant le tytpe de filtre est différent ...
Si je filtre par date il ne me ressort aucun resultat (alors que la date est bonne)
Si je filtre par reference, ca fonctionne.
Si je filtre par nom de client, ca ne fonctionne pas ... Il me demande (je ne sais pas pourquoi) deux fois de rentrer quelque chose, alors que je n'ai spécifié qu'un seul inputBox ...
Je suppose que ca doit venir du faite de ce que j'enregistre dans la variable pour la "concatener" ... Car dans les 4 cas, ce sont tous des cas avec des variables différentes ...
Je vous met le code ci-joint ...
merci d'avance pour votre futur aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 Private Sub btnFiltrer_Click() Dim Value As Integer Dim byDate As String Dim byReference As String Dim byClient As String Value = Me.drlFiltre.ListIndex Select Case Value Case 0 Me.[NDF_SHOW_Item].Form.FilterOn = False Case 1 byDate = InputBox("Veuillez rentrer la date de livraison : ") If (IsNull(byDate)) Then MsgBox ("Veuillez rentrer une valeur pour appliquer le filtre") Else Me.[NDF_SHOW_Item].Form.Filter = "[NDF_DATE]=" & byDate Me.[NDF_SHOW_Item].Form.FilterOn = True End If Case 2 byReference = InputBox("Veuillez rentrer la reference de la commande : ") If (IsNull(byReference)) Then MsgBox ("Veuillez rentrer une valeur pour appliquer le filtre") Else Me.[NDF_SHOW_Item].Form.Filter = "[NDF_ORDER]=" & byReference Me.[NDF_SHOW_Item].Form.FilterOn = True End If Case 3 byClient = InputBox("Veuillez rentrer le nom du client : ") If (IsNull(byClient)) Then MsgBox ("Veuillez rentrer une valeur pour appliquer le filtre") Else Me.[NDF_SHOW_Item].Form.Filter = "[NDF_CUST_NAME]=" & byClient Me.[NDF_SHOW_Item].Form.FilterOn = True End If Case 4 Me.[NDF_SHOW_Item].Form.Filter = "NDF_CLOSED = 0" Me.[NDF_SHOW_Item].Form.FilterOn = True Case Else MsgBox "Veuillez selectioner un critère de filtre." End Select End Sub
(Ps : Si vous voyez des améliorations a faire sur le code, n'hésitez pas ... Je ne suis pas encore superbement familiarisé avec VBa ...)
Partager