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

IHM Discussion :

Filtres cumulés sous Access 2003


Sujet :

IHM

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 145
    Points
    145
    Par défaut Filtres cumulés sous Access 2003
    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 :

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

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Si la deuxième critère du filtre est bon, c'est peux-être le premier qui ne va pas.

    J'ai ajouté un petit bout de code pour valider le premier critère.
    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
    Private Sub BpMux_Click()
     
        Dim strCritere As String
     
        DoCmd.ShowAllRecords
        strCritere = strCritereStatut & " AND TypChassis = " & Chr(34) & "MUX" & Chr(34)
     
        'Pour tester deuxième critère
        'strCritere = "TypChassis = " & Chr(34) & "MUX" & Chr(34)
     
        'Pour tester premier critère
        strCritere = strCritereStatut
     
        Me.Filter = strCritere
        Me.FilterOn = True
        MsgBox strCritere
     
    End Sub
    A+

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 145
    Points
    145
    Par défaut Merci ... J'ai trouvé
    Effectivement, j'ai essayé le premier filtre et ... aucun enregistrement. Je suis donc allé voir ma requête et j'ai simulé la même combinaison de paramètres et en fait, il n'y avait tout simplement pas d'enregistrement dans la requête avec ces paramètres.
    Le code fonctionnait bien mais pas ma combinaison.
    J'ai essayé avec deux critères cumulés que je retrouvais cette fois-ci dans la requête dans les champs correspondants et ça fonctionne !

    Merci pour m'avoir fait réfléchir ...
    Si ça peut petre utile à d'autres.

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

Discussions similaires

  1. programmer en vb .net sous access 2003
    Par rideom dans le forum Access
    Réponses: 4
    Dernier message: 20/07/2006, 14h59
  2. Taille d'une zone de texte dans un état sous Access 2003
    Par Petite grenouille dans le forum Contribuez
    Réponses: 4
    Dernier message: 15/05/2006, 19h39
  3. Problème de table liées sous Access 2003
    Par FuRioX dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2006, 12h19
  4. Probleme formulaire sous access 2003
    Par pedrosystem dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h02
  5. PB importation classeur excel sous access 2003
    Par techinfo37 dans le forum Access
    Réponses: 6
    Dernier message: 04/10/2005, 20h41

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