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 :

Recherche multicritère par rapport à deux(2) zones de liste déroulante [AC-2013]


Sujet :

IHM

  1. #1
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut Recherche multicritère par rapport à deux(2) zones de liste déroulante
    Bonjour membres du forum,
    heureux de vous retrouver !
    J'ai deux (2) zones de liste déroulante pour en faire des listes déroulantes filtrées l'une en fonction de l'autre.
    La 1ère "Liste2_StatutFacture", et l'autre "ListeOpérateurFournisseurParticulier".

    Codes:
    Pour la ZLD "Liste2_StatutFacture"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture]
    et
    la ZLD "[Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture]"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![ListeOpérateurFournisseurParticulier]
    Sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.NUM_AUTO_Det_Fact, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Mle_Operat_DetFact, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.TravauxMateriaux, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Designation_Cmde, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.PrixUnitaire_Fact, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Qte_Cde, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Date_Facturation, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Num_Trav_Mat_Facture, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Fournisseur_OperateurParticulier, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.StatutFacture
    FROM Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere
    WHERE (((Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.[Fournisseur_OperateurParticulier])=[Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![ListeOpérateurFournisseurParticulier]) AND ((Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.[StatutFacture])=[Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture]))
    ORDER BY Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.NUM_AUTO_Det_Fact;
    Quelle méthode utiliser pour en faire des listes déroulantes filtrées l'une en fonction de l'autre ?

    Avec celle ci https://www.developpez.net/forums/d1...es-formulaire/
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Pas sûr de comprendre, mais ...
    SQL ComboboxPays
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_pays, nom_pays FROM tbl_pays
    SQL ComboboxVille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_ville, nom_ville, id_pays_fk = Forms!NomForm!ComboboxPays
    Dans le form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboboxPays_AfterUpdate()
    Me![ComboboxVille].Requery
    End Sub
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Bonsoir membres du forum,
    bonsoir hyperion13,
    Très heureux de votre suite qui m'a apporté un grand plus.
    Voici ce que j'ai réalisé:

    Sql du Formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.NUM_AUTO_Det_Fact, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Mle_Operat_DetFact, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.TravauxMateriaux, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Designation_Cmde, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.PrixUnitaire_Fact, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Qte_Cde, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Date_Facturation, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Num_Trav_Mat_Facture, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Fournisseur_OperateurParticulier, Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.StatutFacture
    FROM Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere
    WHERE (((Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.Fournisseur_OperateurParticulier) Like "*" & [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![ListeOpérateurFournisseurParticulier] & "*") AND ((Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.StatutFacture) Like "*" & [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture] & "*"))
    ORDER BY Req_TRAVAUX_ET_MATERIAUX_ENGAGESFiltreMultiCcritere.NUM_AUTO_Det_Fact;
    Critères:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*" & [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![ListeOpérateurFournisseurParticulier] & "*"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*" & [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture] & "*"
    Evénements:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Liste2_StatutFacture_AfterUpdate()
    RaffraichirFormTRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu
    Me.Requery
    Me.StatutFacture.Requery
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ListeOpérateurFournisseurParticulier_AfterUpdate()
    RaffraichirFormTRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu
    Me.Requery
    Me.Fournisseur_OperateurParticulier.Requery
    End Sub
    Une procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub RaffraichirFormTRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu()
    On Error Resume Next
    Me.Requery
    If Me.Form.ListCount > 0 Then
            Me.Form.Visible = True
        Else
            Me.Form.Visible = False
        End If
    End Sub
    Résultat:

    Nom : RechercheMultiCritere_1.JPG
Affichages : 77
Taille : 220,3 Ko
    Nom : RechercheMultiCritere_2.JPG
Affichages : 73
Taille : 125,6 Ko

    Vos remarques et suggestions me sont très précieuses.
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

  4. #4
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 114
    Points : 491
    Points
    491
    Par défaut
    Salut membres du forum,
    Concernant les critères de filtre par rapport à une zone de liste déroulante d'un formulaire, la méthode suivante
    à l'intérieur d'un formulaire est plus précise et efficace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme VraiFaux([Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![ListeOpérateurFournisseurParticulier].[ListIndex]=-1;"*" & [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![ListeOpérateurFournisseurParticulier] & "*";[Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![ListeOpérateurFournisseurParticulier])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme VraiFaux([Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture].[ListIndex]=-1;"*" & [Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture] & "*";[Formulaires]![TRAVAUX_et_MATERIAUX_Engages_Detail_Facture_Aperçu]![Liste2_StatutFacture])
    Je l'ai trouvée ici https://claudeleloup.developpez.com/...-multicritere/

    Je vais essayer la méthode d'EricDgn qui se trouve ici https://www.developpez.net/forums/d1...es-formulaire/ dont voici le code:
    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
    Private Sub filtrer()
       Dim sFiltre As String, sSQL As String
       sFiltre = ""
       '--- filtre sur base de listes déroulantes
       If Me.liste_nom <> "" Then
          sFiltre = "[Pnom] = '" & Me.liste_nom & "'"
       End If
       If Me.Txt_produit_acheté <> "" Then
          If sFiltre <> "" Then sFiltre = sFiltre & " AND "
          sFiltre = sFiltre & "[produit_acheté] Like '*" & Me.Txt_produit_acheté & "*'"
       End If
       If Me.liste_ville <> "" Then
          If sFiltre <> "" Then sFiltre = sFiltre & " AND "
          sFiltre = sFiltre & "[ville] = '" & Me.liste_ville & "'"
       End If
       If Me.liste_Pprenom <> "" Then
          If sFiltre <> "" Then sFiltre = sFiltre & " AND "
          sFiltre = sFiltre & "[Pprénom] = '" & Me.liste_Pprenom & "'"
       End If
       '--- mise à jour de la requête source des listes déroulantes
       sSQL = CurrentDb.QueryDefs("rNomVilleProduit0").SQL
       If sFiltre <> "" Then
          sSQL = Left(sSQL, Len(sSQL) - 3)
          sSQL = sSQL & " WHERE " & sFiltre
       End If
       CurrentDb.QueryDefs("rNomVilleProduit").SQL = sSQL
       Me.Recalc
       '--- filtrage des données
       With Me.F_sélection_réclamation.Form
          .Filter = sFiltre
          If sFiltre = "" Then
             .FilterOn = False
          Else
             .FilterOn = True
          End If
          Debug.Print ".FilterOn: "; .FilterOn, .Filter
       End With
    End Sub
    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/09/2016, 10h53
  2. [AC-2010] Pb Valeur par défaut d'une zone de liste déroulante
    Par spawny161184 dans le forum IHM
    Réponses: 1
    Dernier message: 30/10/2012, 16h34
  3. Réponses: 6
    Dernier message: 30/08/2008, 16h06
  4. Recherche max par rapport à un critère
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/08/2007, 07h56
  5. Recherche dans table de BDD par rapport à deux champs
    Par kiops dans le forum Bases de données
    Réponses: 4
    Dernier message: 09/03/2007, 12h21

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