IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Effectuer un filtrage


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 302
    Par défaut Effectuer un filtrage
    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 ...)

  2. #2
    Membre chevronné Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Par défaut
    A première vue, il te manque les délimiteurs dans le filtre de ton formulaire :
    " pour les strings : "dupont"
    # pour les dates : #02/03/2008#

    Sinon, piste d'amélioration :
    vérifie que ta date est bien une date (IsDate), idem pour ton numérique (IsNumeric)

    Yvan

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 302
    Par défaut
    Merci beaucoup pour ces indications !
    Je vais aller mettre tout ca en pratique !

    Encore une fois merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effectuer un filtrage avec plus d'options
    Par k3ops dans le forum OpenCV
    Réponses: 3
    Dernier message: 17/06/2008, 13h28
  2. [Débutant] filtrage spécial à effectuer
    Par Magemax dans le forum Access
    Réponses: 6
    Dernier message: 06/01/2006, 00h52
  3. filtrage d'une chaine de caractéres
    Par localhost dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 20/09/2003, 02h11
  4. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 08h51
  5. Matrice de filtrage ?
    Par gimlithedwarf dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/08/2002, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo