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 ...

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
merci d'avance pour votre futur aide !
(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 ...)