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 enchaînés sur formulaire continu


Sujet :

IHM

  1. #1
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Février 2006
    Messages : 230
    Points : 176
    Points
    176
    Par défaut Filtres enchaînés sur formulaire continu
    Bonjour à tous,
    Sur un formulaire continu, j'ai constitué outre des champs de tri, huit filtres... (aspect en pièce jointe).
    Ils fonctionnent tous correctement individuellement... Seulement je souhaiterais lorsque j'ai déjà sélectionné ou filtré par "AMB" pouvoir enchaîner avec "INF" comme l'exemple sur l'attachement... Or, ils se comportent individuellement.
    1) Que dois je rajouter à mon code ci-dessous (il s'agit bien sûr que celui attaché à un seul filtre) pour garder " en mémoire" le filtre précédent ?
    2) Question secondaire : une fois les filtrages effectués, faut-il que je crée un bouton pour "rafraîchir" la liste comme initiale (afin d'effacer tous les caractères dans chaque champ de filtre) ou bien existe-t-il une solution plus harmonieuse ?

    Merci de votre aide précieuse qui m'a permis depuis maintenant trois mois de faire de sérieux progrès.
    F


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub filtreidentité_AfterUpdate()
    Texte49.SetFocus
    filtreidentité.SetFocus
    If IsNull(filtreidentité) Then
    Me.FilterOn = False
    filtreidentité.SetFocus
    Else
       Me.Filter = "[Employés.Nom] like '" & filtreidentité & "*'"
        Me.FilterOn = True
    End If
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Bonsoir,

    il est possible de mettre plusieurs critères dans ton filtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Champ3 Like 'Test*') and (Champ1 = 'Test') and (Champ4 = 'Retest')
    En éffectuant un test sur chacunes de tes zones de textes tu peux composer tes filtres dans une variables et ensuite appliquer ton filtre.

    Dolphy

  3. #3
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Février 2006
    Messages : 230
    Points : 176
    Points
    176
    Par défaut Filtres et formulaire continu
    Merci pour cette réponse, mais je planche depuis longtemps sur ce problème en vain. Je ne comprends pas bien la façon dont écrire le code... Je joins ci-dessous le deuxième filtre concerné... Peux tu m'écrire la syntaxe complète car mes essais ont été infructueux jusqu'alors


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub filtrefonction_AfterUpdate()
    Texte49.SetFocus
    filtrefonction.SetFocus
    If IsNull(filtrefonction) Then
    Me.FilterOn = False
    filtrefonction.SetFocus
    Else
       Me.Filter = "Fonction like '" & filtrefonction & "*'"
      Me.FilterOn = True
    End If
    End Sub

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir;

    Pour ce type de cas voici mon travail (Je sais... Je pourrai faire mieux que de mettre partout type variant... Il faut que je me corrige!)

    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
    52
    53
    54
    55
    56
    57
     
    Private Sub btnOK_Click()
        Dim strFiltre As String
        Dim avarNP As Variant
        Dim varNPTel As Variant
        Dim avarTel As Variant
        Dim varTel As Variant
        Dim avarAdresse As Variant
        Dim varAdresse As Variant
     
    ' Filtre sur le téléphone tel que***********
    On Error Resume Next
    strFiltre = ""
    If Not IsNull(Me.txtTelStrict) Then
        strFiltre = "([Telephon]='" & Me.txtTelStrict & "')"
    End If
     
     ' Filtre sur la ville *********************
    If Not IsNull(Me![N°Commune]) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "[N°Commune] LIKE '*" & Me![N°Commune] & "*'"
    End If
     
     'Filtre par l'adresse**********************
    avarAdresse = Split(Nz(Me.TxtAdresse), " ")
    For Each varAdresse In avarAdresse
        If Trim(varAdresse) <> "" Then
            If strFiltre <> "" Then strFiltre = strFiltre & " AND "
            strFiltre = strFiltre & "([H_AdresseBien] LIKE '*" & varAdresse & "*')"
        End If
    Next
     
    ' Filtre par NomPrénom*********************
    avarNP = Split(Nz(Me.txtNP), " ")
    For Each varNP In avarNP
        If Trim(varNP) <> "" Then
            If strFiltre <> "" Then strFiltre = strFiltre & " AND "
            strFiltre = strFiltre & "([H_Propriétaire] LIKE '*" & varNP & "*')"
        End If
    Next
     
    ' Filtre par Numéro Téléphone*************
    avarTel = Split(Nz(Me.TxtTelephon), " ")
    For Each varTel In avarTel
        If Trim(varTel) <> "" Then
            If strFiltre <> "" Then strFiltre = strFiltre & " AND "
            strFiltre = strFiltre & "([Telephon] LIKE '*" & varTel & "*')"
        End If
    Next
     
     
    ' Filtrer le sous-formulaire*************
    With Me.F_Telephon.Form
        .Filter = strFiltre
        .FilterOn = True
    End With
    End Sub
    Et pour supprimer le filtre du sous-formulaire un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.F_Telephon.Form.FilterOn = False
    Ce qui n'empêche pas de prévoir de vider les champs de ton formulaire en même temps par quelques :
    Cordialement
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  5. #5
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Février 2006
    Messages : 230
    Points : 176
    Points
    176
    Par défaut multifiltrage et formulaire continu
    Merci bien pour cette communication mais je n'ai toujours pas solutionné mon problème. Peut on personnaliser la tréponse en fonction de ce que j'ai déjà écrit ?
    Merci pour votre aide.
    F

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir;

    C'est gentil de nous dire merci mais il ressort que ça ne t'interesse pas et que tu désires absolument faire selon ton idée. Soit.
    Pour qu'on comprenne ton désire il serait bien que tu nous joigne autre chose que quatre miniatures identiques.
    D'autre part; pourquoi vouloir s'obstiner à séparer chaque trie alors que la recherche finale est de trier simultanément?

    Il est donc logique de regrouper en fin de "requête" notre trie.

    Cordialement.

    Ps : Il est logique d'être obstiné sinon ça ferait longtemps que nous aurions abandonné.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  7. #7
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Février 2006
    Messages : 230
    Points : 176
    Points
    176
    Par défaut filtres multiples formulaires
    Bonjour,
    Oh là loin de moi cette idée de ne pas m'intéresser aux réponses des gens tous plus expérimentés que moi sur ce site...
    Pourquoi séparer les filtres ? tout simpelment parce qu'en début de conception j'avais concçu (avec mes maigres connaissances de l'époque) des filtres sur chaque colonne dans le même esprit que le tri par ordre alpha... C'était au début.. Maintenant à l'usage effectivement je pense que l'idée de grouper est meilleure mais je souhaitais garder le principe du formulaire sans avoir à sortir pour activer un quelconque moteur de reccherche. Je vois bien que ton code est attaché à un bouton de comande et donc prbablement à un formulaire où seraient sélectionnés chaque critère...
    Rien de plus, je suis tel un débutant qui cheche la meilleure solution pour un usage optimal...
    Merci

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour;

    Ok.
    Regarde l'endroit du filtre qui te dit que c'est un sous formulaire qui est filtré.

    En découvrant tes miniatures j'ai cru que tel était le cas:
    J'ai vu un formulaire avec différents champs de recherche. A partir de ce moment il semble logique d'incorporer un sous formulaire indépendant qui sera filtré suivant commandes du formulaire principal

    Cordialement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ' Filtrer le sous-formulaire*************
    With Me.F_Telephon.Form
        .Filter = strFiltre
        .FilterOn = True
    End With
    Tu peux aussi jeter un coup d'oeil là : http://access.developpez.com/sources...iCritereTofalu
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  9. #9
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Février 2006
    Messages : 230
    Points : 176
    Points
    176
    Par défaut Filtres indépendants Formulaire continu
    Bonjour,
    La navigation dans le Pacifique m'a donné du temps et surtout permis de faire la synthèse de toutes les réponses reçues ainsi que les aides au travers des forums. Je vous en remercie.
    Aussi voici ci-dessous le code qui m'a permis de débrouiller le problème et d'arriver à une solution sympa de filtrage au travers de plusieurs champs indépendants situés au dessus de colonnes d'un formulaire continu issu d'une requête...

    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
    Private Sub FILTRE_FORM()
    Dim i As Integer
    Dim CTL As String
    Sum_filter = ""
    CTL = "Filter1"
    i = 1
        Do Until i = 10 'Nb de filtre + 1
                    If Me.Controls(CTL) <> "" Then
                        If Sum_filter <> "" Then Sum_filter = Sum_filter & " AND "
                        Sum_filter = Sum_filter & "([champ" & i & "] LIKE '" & Me.Controls(CTL) & "*')"
                    End If
            i = i + 1
            CTL = "Filter" & i
    Loop
    End Sub
    *****************************

    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
    Private Sub Filter1_change() 'pour le filter1
    Texte49.SetFocus
    Filter1.SetFocus
    FILTRE_FORM
    If Sum_filter Like "" Then
        Me.FilterOn = False
        Filter1.SetFocus
    Else
       Me.Filter = Sum_filter
       Me.FilterOn = True
    End If
    End Sub
     
    Private Sub Filter2_change() 'pour le filter2
    Texte49.SetFocus
    Filter2.SetFocus
    FILTRE_FORM
    If Sum_filter Like "" Then
        Me.FilterOn = False
        Filter2.SetFocus
    Else
       Me.Filter = Sum_filter
       Me.FilterOn = True
    End If
    End Sub
    et ainsi de suite selon le nombre de filtres (9 dans mon cas).

    Remarque : le dernier écueil rencontré a été de pouvoir faire fonctionner ce code sur l'événement "Change"... Il faut de ce fait paramétrer access dans le menu Options/Clavier sur Comportement du champ en entrée = fin du champ.

    J'espère que cela sera utile à d'autres.

    Merci encore pour votre aide.

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

Discussions similaires

  1. Filtre date sur formulaire continu
    Par delcroixf dans le forum IHM
    Réponses: 2
    Dernier message: 03/04/2007, 09h54
  2. Filtre sur formulaire continu
    Par delcroixf dans le forum IHM
    Réponses: 5
    Dernier message: 04/02/2007, 10h22
  3. PB code et filtre multicritères sur formulaire
    Par flagfight dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 16h36
  4. Présentation sur formulaire continu
    Par Michel DELAVAL dans le forum Access
    Réponses: 3
    Dernier message: 09/03/2006, 18h28
  5. Programmation d'un filtre particulier sur formulaire
    Par student dans le forum Access
    Réponses: 2
    Dernier message: 24/02/2006, 12h34

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