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 :

Filtre multicritères dans module standard [AC-2016]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    février 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : février 2019
    Messages : 47
    Points : 32
    Points
    32
    Par défaut Filtre multicritères dans module standard
    Bonjour,
    J'ai copié sur un module standard le code d'un filtre de recherche multicritère d'un formulaire pour exécuter des appels de procédure sur des contrôles ,mais il ne fonctionne pas ;ayant essayé de trouver de solution hélas j'en ai pas trouvé . Quelqu'un pourrai t’il m'aider ? Merci.
    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
    Sub filtre()
    f = ""
    If Not IsNull(RCHPRODUIT) And RCHPRODUIT <> "" Then
    If f <> "" Then
    f = f & " AND produitnaf = """ & RCHPRODUIT & """"
    Else
    f = "produitnaf = """ & RCHPRODUIT & """"
    End If
    End If
     
    If Not IsNull(rchmouvement) And rchmouvement <> "" Then
    If f <> "" Then
    f = f & " AND mouvement = """ & rchmouvement & """"
    Else
    f = "mouvement = """ & rchmouvement & """"
    End If
    End If
    Forms![menu de consultation transfert].Filter = f
    FilterOn = True
    End Sub

  2. #2
    Membre émérite Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    1 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 1 729
    Points : 2 655
    Points
    2 655
    Par défaut
    Il ne sert à rien d'ouvrir un nouveau sujet pour évoquer un même problème.

    Je vais le rappeler une seconde fois aujourd'hui, les contributeurs de DEV sont tous des bénévoles et qu'ils ont ou non une activité professionnelle.
    Si vous estimez le délai de réponse trop long, alors sachez être patient.

    Pour votre problématique, pourquoi avoir créé un module standard ?
    Supprimez-le.
    Copier dans votre form
    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
    Option Compare Database
    Private Sub rchmouvement_GotFocus()
    Me!rchmouvement.RowSource = "SELECT Mouvement FROM TBL GROUP BY Mouvement;"
    Me!rchmouvement.ColumnCount = 1
    Me!rchmouvement.ColumnWidths = "4 cm"
    End Sub
    Private Sub RCHPRODUIT_GotFocus()
    Me!RCHPRODUIT.RowSource = "SELECT PRODUITNAF FROM TBL GROUP BY PRODUITNAF;"
    Me!RCHPRODUIT.ColumnCount = 1
    Me!RCHPRODUIT.ColumnWidths = "4 cm"
    End Sub
    Sub FilterForm()
     
    If Not IsNull(RCHPRODUIT) Then sWhere = " and [PRODUITNAF]='" & RCHPRODUIT & "'"
    If Not IsNull(rchmouvement) Then sWhere = sWhere & " and [Mouvement]='" & rchmouvement & "'"
          '
    If sWhere = "" Then
        Me.FilterOn = False
    Else
        sWhere = Mid(sWhere, 5)
        Me.Filter = sWhere
        Me.FilterOn = True
    End If
    End Sub
    Private Sub rchmouvement_Change()
    FilterForm
    End Sub
    Private Sub RCHPRODUIT_Change()
    FilterForm
    End Sub
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    février 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : février 2019
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    J'ai ouvert une nouvelle discussion en pensant que puisque la réponse à la discussion "Comment exécuter procédure d'un module standard ?" à été résolue logiquement, de part hyperion13.
    .
    Si vous avez créé des sub() ou function() dans un module standard pour les appeler via un btn de commande d'un form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande4_Click()
    Call nomdelafunction ou nomdelasub
    End Sub
    et je m'en excuse pour ça
    Quand à mon problème ,j'ai créé un module standard pour y mettre le code filtre et utiliser " la sub" pour les autres contrôles par "appel procédure" un peu comme une fonction .

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    février 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : février 2019
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Je viens de tester le code envoyé ,il est magnifique, c'est exactement ce que je cherchais .merci

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    février 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : février 2019
    Messages : 47
    Points : 32
    Points
    32
    Par défaut RAZ sur 1 controle
    Bonjour ,
    Pas de RAZ si j'efface le contenu de la combox (événement sur un seul contrôle).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub rchmouvement_Change()
    If rchmouvement = "" Then
    FilterForm
    Else
    FilterForm
    End If
    End Sub

  6. #6
    Membre émérite Avatar de hyperion13
    Homme Profil pro
    Calot120 - Enseignant Post Bac
    Inscrit en
    octobre 2007
    Messages
    1 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Calot120 - Enseignant Post Bac
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2007
    Messages : 1 729
    Points : 2 655
    Points
    2 655
    Par défaut
    C'est simple ! comme dirait une certaine pub.
    Et ce n'est pas sur l'event_Change() qu'il faut apporter des modifications.
    Dans mon Post#2 la sub FilterForm test en L14 que la combobox RCHPRODUIT n'est pas vide et conserve donc la valeur qui est sélectionnée.
    Donc à vous d'insérer un nouveau bloc IF après L23 pour tester que la combobox RCHPRODUIT est vide et si c'est le cas libérer le filtre.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    GMT+4 - 21°19'18" S - 055°25'32" E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse est pertinente. N'oubliez pas svp de clôturer le sujet en cliquant sur

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    février 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : février 2019
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Salut,
    J'ai essayé toute sorte de combinaison elle à l'air de marcher
    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
    If Not IsNull(RCHPRODUIT) Then sWhere = " and [PRODUITNAF]='" & RCHPRODUIT & "'"
    If Not IsNull(rchmouvement) Then sWhere = sWhere & " and [Mouvement]='" & rchmouvement & "'"
          '
    If sWhere = "" Then
        Me.FilterOn = False
    Else
        sWhere = Mid(sWhere, 5)
        Me.Filter = sWhere
        Me.FilterOn = True
      End If
     
    If IsNull(RCHPRODUIT) Then
        sWhere = ""
        sWhere = Mid(sWhere, 5)
        Me.Filter = sWhere
        Me.FilterOn = True
        End If

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    fonctionnaire
    Inscrit en
    février 2019
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Algérie

    Informations professionnelles :
    Activité : fonctionnaire

    Informations forums :
    Inscription : février 2019
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Bonjour ,ça fait une infinité de combinaisons ,il faut reconnaitre j’y arrive pas . Solution svp.

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

Discussions similaires

  1. [XL-2010] Utiliser une fonction contenue dans un module standard dans un userform
    Par tony76 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/05/2015, 07h14
  2. [XL-2010] Withevent dans un module standard
    Par terrypical dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2014, 13h36
  3. [1.x] Filtres et Tries dans module CRUD ?
    Par symfony30000 dans le forum Symfony
    Réponses: 7
    Dernier message: 22/03/2010, 15h30
  4. Réponses: 4
    Dernier message: 27/11/2009, 17h08

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