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

Requêtes et SQL. Discussion :

Formulaire de recherche : relations requetes etc. [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut Formulaire de recherche : relations requetes etc.
    Bonjour à tous,

    Débutant sur access, je dois réaliser une base de donnée avec une fonction de recherche multi critère. J'ai lu absolument tous les tutoriels du site sur le sujet, j'ai réussi à faire un formulaire père/fils (Tuto de Claude LELOUP) mais il me manque des fonctionnalité dans ce dernier comme la possibilité de filtrer dans une tranche de nombres et pour une date sup ou égale (d'ailleurs si quelqu'un sait comment faire cela résoudrais tout mon problème).

    Je suis donc parti sur un autre tuto de Claude LELOUP : http://claudeleloup.developpez.com/t...-multicritere/

    Le problème est que le tuto est bien mais inadapté selon moi à des débutants, il manque beaucoup d'informations pour nous aider et perso je ne comprends que la moitié (encore une fois, sans offense pour vous Claude, le tuto père fils était parfait mais selon moi il manque quelques petites infos et étapes dans le tuto de recherche par requete)
    En partant de là j'ai créer ma DB et un formulaire. En détail du formulaire j'ai mis des champs qui correspondent aux infos que je veux récupérer de ma recherche. Il s'agit de zone de texte. Pour afficher les entrées correspondantes aux critères dans ces cases j'ai mis en source ma table référence mais je ne devrai pas plutôt mettre une requete ?

    Et justement, j'ai aussi du mal à ce niveau là. Je pense que je dois créer une requête associé à mes champs critères de selection... Par exemple mon premier critère est le département qui est une liste déroulante avec en source ma table département. Je veux qu'il affiche toutes les entrées correspondante au champs selectionné (dans mes cases de mon détail du formulaire comme expliqué plus haut). Mais c'est là que je bloque, je vois pas trop comment faire. Je devrais avoir une requete qui dit en gros : "SELECT * FROM reference WHERE Département = la valeur que j'ai dans ma case de critère." Sauf que dans ma logique je devrais avoir cette requete sur le champs qui va m'afficher mon entrée, enfin dans la case département du détail de mon formulaire, pour qu'en gros il affiche les entrées qui sont dans le département sélectionner...

    Je suis parti sur cette méthode parce que je la pensais plus simple au niveau des requetes que la méthode père/fils qui demande du code (et justement pour ce que je veux faire je n'ai pas les connaissances nécessaire) mais au final je bloque sur les requetes, surement à cause d'un manque d'expérience.

    Si quelqu'un aurait la force de m'éclairer, je lui en serait reconnaissant !

    Pour un peu plus de précision voila un screen de ma DB

    https://gyazo.com/09be9a860ce180b8d14a8c77a170ee24

    Si besoin de plus d'infos pas de problème je peux même fournir la DB

    Merci d'avances !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Si j'ai bien compris tu n'as qu'une seule source de données (ta table) et tes champs (colonees) affichées sont toujours les mêmes.
    Si c'est bien cela alors tu n'as pas besoin d'utiliser les champs Père/Fils.
    Un simple changement dans le filtre appliqué au résultat suffira.

    Voilà comment je procéderai :
    1. Créer un formulaire (ou sous-formulaire) qui affiche toutes mes données.
    2. Faire un écran (formulaire) pour que l'utilisateur puisse entrer les valeurs de sélection.
    3. Calculer avec du VBA le filtre à appliquer sur le formulaire (ou sous-formulaire) résultat.
    4. Appliquer ce filtre.


    Un filtre ressemble comme 2 goutes d'au à une clause where (ligne critère) d'une requête donc une bonne façon de trouver comment l'écrire est de le faire écrire par Access.
    Tu crées une requête basée sur ta table et tu spécifie les critères que tu veux pour chacun des champs.
    Pour sélectionner entre deux valeurs, tu peu utiliser Between Valeur1 and Valeur2.
    Pour sélectionner une valeur plus grande que, tu mets sur la ligne critère >=Valeur3.
    Une fois que ta requête donne le résultat attendu, tu change l'affichage (icône en haut à gauche pour SQL) et tu vas voir comment Access l'a codé.
    La partie après le Where est pratiquement ton filtre.
    Note que Access utilises des parenthèses à profusion même si elles ne sont pas indispensable et qu'il qualifie dés les champs en indiquant la table source ([NomTaTable].[NomTonChamp]).

    Le but du jeu est ensuite de reproduire cette clause where par code VBA et d'en faire un filtre.

    Supposons que tu as where ([TaTable].[TonChamp1] Between V1 and V2) and ([TaTable].[TonChamp2]>=V3).
    Ton filtre va être ([TonChamp1] Between V1 and V2) and ([TonChamp2)>=V3). Comme tu l'appliques à un formulaire, tu n'as pas besoin de préciser la table (ou la requête).

    Ici un exemple de code qui fait cela.

    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
     
    '=== Calcule le filtre
    dim filtre as string
     
    if not isnull(me.CritereV1) and not isnull(me.CritereV2) then
     
       if filtre <> "" then
         filtre=flitre & " and "
       end if
     
       filtre=filtre & "([TonChamp1] between " & me.CritereV1 & " and " & Me.CritereV2 & ")"
    end if
     
    if not isnull(me.CritereV3) then
     
       if filtre <> "" then
         filtre=flitre & " and "
       end if
     
       filtre=filtre & "([TonChamp2] >= " & me.CritereV3 & ")" 'note qu'on pourrait rendre le >= variable avec un truc du genre filtre=filtre & "([TonChamp2] " & me.OperateurTestV3 & " >= " & me.CritereV3 & ")"
    end if
    '--- Calcule le filtre
     
    '=== Applique le filtre au sous formulaire résulat
    me.sfrmResultat.form.filtre=filtre
    me.sfrmresultat.form.FilterOn=true
    '--- Applique le filtre au sous formulaire résulat
    Mon code suppose que toutes tes valeurs sont des nombres. Si elles étaient des textes ou des dates, il conviendrait d'ajouter les délimiteurs appropriés.

    J'espère que mes explications seront assez détaillées. Si tu as des questions n'hésites pas.

    A+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Salut et merci de ta réponse !

    Je vais étudier tout ça, mais en réalité ce qui me pose problème est que j'ai du mal à cerner comment établir les relations entre mes champs de recherche et les résultats qui seront affichés.

    En reprenant les étapes que tu m'as énoncé :

    1. J'ai ma table : https://gyazo.com/6d4e1a91919918b27827fdb6894acdea
    J'ai créer un formulaire avec des champs (en mode formulaire continu) qui sont lié à la table référence (ci dessous en screen).
    2. Le formulaire aussi est réalisé avec les champs critères de selection (il y en aura plus) : https://gyazo.com/4a0e9f682231f7a43558d22d24f62387
    Comme source du formulaire j'ai mis la requete : https://gyazo.com/d6a8d896ee065c92ed1e8f83db30959a
    (le Comme VraiFaux c'est un essai sur la base du tuto de Claude, mais ça ne fonctionne pas).
    3. Le VBA. Donc si j'ai bien compris la il faut aller dans sa requete, et dans "critère" je code ce que je veux. En l’occurrence reprenons l'exemple du département :
    ça donnerais : SELECT * FROM t_reference WHERE t_reference.departement = >>> Donc je sélectionne de ma table référence les entrées où le département serait égal à ... et là ca bloque, je comprends pas quoi mettre, peut etre = r_recherche.filtredépartement pour lui dire de selectionner que ce que j'ai mis avec ma requete sur le champs departement ? (r_recherche étant la requete).

    Ensuite dans mes champs d'affichage en source j'ai mis les champs de ma table référence (par intuition histoire d'avoir des entrées) mais je ne comprends pas bien comment lui faire afficher les entrées que j'ai selectionner avec ma requete (peut etre que ça se fait auto puisque j'ai mis la requete en source ?)
    En fait je pense qu'une fois que j'aurais compris les relations je pourrais avancer...

    En tout cas merci de prendre la peine de m'aider sachant que je suis débutant et donc que j'ai pleins de questions / et pleins de choses que je connais pas encore bien.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Tu n'as pas besoin de requête.
    La liaison entre tes critères et tes données affichées va se faire via le filtre.
    Un filtre c'est un peu comme une clause Where appliquée à un écran.

    J'ai parlé de requête pour que tu saches comment calculer un filtre sachant que la syntaxe peut être un peu complexe.
    Donc tu crées une requête temporaire en utilisant l'éditeur de requête qui marche avec des glisser/déplacer.
    Tu mets des valeurs fixes que tu sais être bonnes dans la ligne des critères ex : =1 dans la colonne [Departement].
    Une fois que ta requête donne le bon résultat, tu n'as plus qu'à regarder le SQL que Access a écrit pour toi. Ça fait gagner un temps fou surtout que l'éditeur de SQL d'Access ne vaut pas grand chose.

    Le code VBA va dans un module qui est "dans" le formulaire de recherche.
    Là mon code est partiel, il faut l'entourer de Sub et end sub.

    Au complet il ressemblerai à
    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
     
    private sub Flitrer()
     
    '=== Calcule le filtre
    ' C'est ici qu'on va déterminer quelles données doivent être affichées en fonction des critères.
     
    dim filtre as string
     
    if not isnull(me.CritereV1) and not isnull(me.CritereV2) then
     
       if filtre <> "" then
         filtre=flitre & " and "
       end if
     
       filtre=filtre & "([TonChamp1] between " & me.CritereV1 & " and " & Me.CritereV2 & ")"
    end if
     
    if not isnull(me.CritereV3) then
     
       if filtre <> "" then
         filtre=flitre & " and "
       end if
     
       filtre=filtre & "([TonChamp2] >= " & me.CritereV3 & ")" 'note qu'on pourrait rendre le >= variable avec un truc du genre filtre=filtre & "([TonChamp2] " & me.OperateurTestV3 & " >= " & me.CritereV3 & ")"
    end if
    '--- Calcule le filtre
     
    '=== Applique le filtre au sous formulaire résulat
    me.sfrmResultat.form.filtre=filtre
    me.sfrmresultat.form.FilterOn=true
    '--- Applique le filtre au sous formulaire résulat
     
    end sub
    et appeler à partir du code d'un bouton "Appliquer Filtre" par

    A+

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Salut à toi,

    Alors déjà un énorme merci pour le temps que tu passe à me répondre, c'est super. Je saisie un peu mieux la situation, bien que je ne comprenne encore pas tout du fait de mon manque d'expérience flagrant avec access. Je vais réfléchir à tout ça et faire des tests mais j'aurais surement d'autres questions (parce que franchement j'ai pas encore saisi la différence entre filtre et requete, pour moi un filtre c'était une requete paramétré pour n'afficher que certaines valeurs ^^). En fait quand tu me parle de filtre dans ma tête je vois deux choses : le filtrage manuel comme sur excel par exemple en sélectionnant et cochant les cases des critères à prendre en compte ou pas ou le filtrage par requete ou code comme ci-dessous. Parce que en réalité, j'ai déjà une "base de donnée" sommaire sur excel, le but étant de la transférer sur access afin de pouvoir réaliser plusieurs manips (comme trier par critère avec un formulaire)

    Pense-tu que ton code est applicable au mien ? Il est le suivant :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Option Compare Database
    Option Explicit
     
    Dim sConteneur As String
    Private Sub Form_Open(Cancel As Integer)
      Dim ctl As Control
      'Recherche du nom du conteneur
      For Each ctl In Me.Controls
        If ctl.ControlType = acSubform Then
            sConteneur = ctl.Name
            Exit Sub
        End If
      Next ctl
    End Sub
    Public Sub Actu()
      On Error GoTo GestionErreurs
      Dim ctl As Control
      Me(sConteneur).LinkMasterFields = ""
      Me(sConteneur).LinkChildFields = ""
      For Each ctl In Me.Controls
         If Left(ctl.Name, 6) = "filtre" And Not IsNull(Me(ctl.Name)) Then
             Me(sConteneur).LinkChildFields = Me.sf_reference.LinkChildFields _
                 & "[" & Right(ctl.Name, Len(ctl.Name) - 6) & "];"
             Me(sConteneur).LinkMasterFields = Me.sf_reference.LinkMasterFields _
                 & "[" & ctl.Name & "];"
         End If
      Next ctl
      Exit Sub
    GestionErreurs:
      Select Case Err.Number
        Case 2335  'survient à partir de la 2e affectation d'un champ fils (sans conséquence)
          Resume Next
        Case Else
          MsgBox "Erreur dans Sub Actu : " & Err.Number & " " & Err.Description
      End Select
    End Sub
     
     
    Private Sub btTout_Click()
      Dim ctl As Control
      For Each ctl In Me.Controls
         If Left(ctl.Name, 6) = "filtre" Then
             Me(ctl.Name) = Null
         End If
      Next ctl
      Call Actu
    End Sub
    '                                                                                ^
    '-------Fin de la partie du code valable quel que soit le formulaire--------------
    '
    '
    '--------------Partie du code à adapter selon vos critères de choix---------------
    '                                                                                V
     
     
     
    Private Sub FiltreDépartement_AfterUpdate()
      Call Actu
    End Sub
     
    Private Sub FiltreCapacité_AfterUpdate()
      Call Actu
    End Sub
     
    Private Sub FiltreDate_AfterUpdate()
        Call Actu
    End Sub
    En réalité il s'agit du code du tuto sur la recherche père fils de Claude Leloup. Je veux l'adapter car pour le moment tout fonctionne cependant il me manque vraiment les champs de critère entre 2 valeurs (pour la capacité) et supérieur à 5 (pour la date). Si ton raisonnement est applicable cela changerais tout et je pourrais enfin terminer cette base de donnée.

    Si vraiment c'est nécessaire je peux joindre ma DB (access 2016), mais ce serait en dernier recours (j'aimerais bien y arriver moi même ^^)

    Encore merci, à bientôt !

    EDIT : en relisant, si j'ai bien compris, ton code à l'air de fonctionner de la même manière que celui de Claude, bien qu'il soit différent. La mise à jour des données ne se fait juste pas en temps réel mais une fois que nous avons appuyé sur le bouton. L'affichage fonctionne avec ma table référence en sous formulaire ou bien les entrées sont affichées dans des zones textes en mode formulaires continus ?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour et désolé, on ne peut pas utiliser les champs père/fils pour faire ce que tu demandes.

    La liaison père/fils est faite sur un ou plusieurs champs égaux donc tu peux faire IDclient=IdClient, IDFournisseur=IDFournisseur ou DateAchat=DateAchat individuellement ou en combinaison mais tu ne peux pas faire DateAchat>=DateReference.

    Pour faire ce que tu veux, tu peux calculer une clause Where par VBA et changer la source de données du Sous-Formulaire soit en modifiant le SQL de la requête qui l'alimente, soit en mettant carrément le SQL dans la source de données du formulaire. Note que si tes champs de filtre étaient TOUJOURS les mêmes tu pourrais aussi définir des critères du type =[Forms]![TonFormParam]![TonChampCritere] directement dans la requête.

    Ou, et c'est la solution que je te propose, appliquer un filtre (et la comparaison avec Excel est pertinente) sur les données affichées par le sous-formulaire.
    Donc tu fais un sous-formulaire qui affiche TOUTES les données sans discrimination.
    Puis tu demandes, via un filtre, à ne plus afficher que les données qui t'intéresse.
    Personnellement je préfère cette solution à la modification du SQL.
    Une différence enter Excel et Access, quand tu filtres les données de Access, elles ne sont pas simplement cachées à l'affichage, elles ne sont plus du tout dans l'affichage.

    Pour le temps réel, rien n'empêche de recalculer et appliquer le filtre après chaque modification d'un des champs de critère. Tu obtiendras l'équivalent des champs père/fils au niveau de l'affichage.
    Cela ressemble à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private sub AppiquerFiltre()
      'ici du code qui calcule le filtre
      'Ici du code qui applique le filtre
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub AfterUpdate_UnChampCritere 'Pour chacun des champs de critère
      call AppliquerFiltre
    end sub
    J'espère que cela rendra les choses plus claires car quand on débute il y a pas mal de choses assez bizarres dans Access.

    A+

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour et désolé, on ne peut pas utiliser les champs père/fils pour faire ce que tu demandes.


    Dommage Ca aurait franchement été le mieux x)
    Retour à la case départ donc,

    Citation Envoyé par marot_r
    La liaison père/fils est faite sur un ou plusieurs champs égaux donc tu peux faire IDclient=IdClient, IDFournisseur=IDFournisseur ou DateAchat=DateAchat individuellement ou en combinaison mais tu ne peux pas faire DateAchat>=DateReference.
    D'accord, donc en gros il ne prend en compte que les valeurs identiques, pas de plage de valeur ni de seuil... Assez embêtant...

    Citation Envoyé par marot_r
    Pour faire ce que tu veux, tu peux calculer une clause Where par VBA et changer la source de données du Sous-Formulaire soit en modifiant le SQL de la requête qui l'alimente, soit en mettant carrément le SQL dans la source de données du formulaire. Note que si tes champs de filtre étaient TOUJOURS les mêmes tu pourrais aussi définir des critères du type =[Forms]![TonFormParam]![TonChampCritere] directement dans la requête.
    Donc là si j'ai bien compris tu me conseil de mettre en source de formulaire une requete qui me dit en gros : "Affiche moi dans le sous-formulaire les entrées qui sont comme / supérieur / compris entre la valeur de la requete", et ma requete doit en gros dire sur chaque critère que je souhaite : "SELECT * FROM [Sous formulaire] WHERE [MonCritère] = [LeChampsCritère] ?


    Citation Envoyé par marot_r
    Ou, et c'est la solution que je te propose, appliquer un filtre (et la comparaison avec Excel est pertinente) sur les données affichées par le sous-formulaire.
    Donc tu fais un sous-formulaire qui affiche TOUTES les données sans discrimination.
    Puis tu demandes, via un filtre, à ne plus afficher que les données qui t'intéresse.
    Personnellement je préfère cette solution à la modification du SQL.
    Une différence enter Excel et Access, quand tu filtres les données de Access, elles ne sont pas simplement cachées à l'affichage, elles ne sont plus du tout dans l'affichage.
    Je vois, le problème du filtre c'est que ce n'est pas pratique (enfin je parle de devoir cliquer sur chaque colonne pour cocher / décocher ce que je ne veux ou pas). Mais si il est possible de réaliser un filtrage sur la base d'un formulaire de recherche c'est très intéressant. C'est ce que tu essayais de me faire comprendre si je ne me trompe (dans ton précédent poste). En résumé, j'aurais quand même des champs de recherche à compléter, une fois reseigner je clique sur un bouton et paf ça me filtre les entrées dans le sous formulaire.
    Maintenant j'avais mis de côté l'idée d'utiliser un sous formulaire et plutôt partir sur quelque chose comme cela : https://gyazo.com/48d3f3d2d728fd1b945bc109427c4646
    Mais si c'est pas possible je laisse tomber et repart sur le sous formulaire (moins de possibilité de mise en forme etc)

    Citation Envoyé par marot_r
    J'espère que cela rendra les choses plus claires car quand on débute il y a pas mal de choses assez bizarres dans Access.
    Ca c'est clair, c'est pas évident la première fois surtout que je commence avec quelque chose de déjà assez compliqué. En tout cas heureusement qu'il y a des gens sympa et serviable comme toi ^^. Et encore désolé pour mon manque d'expérience :s

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Les champs père/fils ne sont pas destinés à faire du filtrage. Essentiellement ils sont destinés à transmettre de l'information entre un formulaire et son sous-formulaire.
    Par exemple, ils sont super pratiques pour afficher les détails d'une commande associés à son entête et récupérer le numéro de la commande quand l'utilisateur saisi un nouveau détail.
    Ça évite d'avoir à le programmer soi-même ce qui est un peu délicat.

    Tu n'es pas obligé d'utiliser un sous-formulaire pour que le filtrage fonctionne et tu n'as pas a utiliser les entêtes de colonnes. C'était une analogie pour décrire la logique de fonctionnement.
    Tu peux comme tu le montres, utiliser le pied de formulaire comme zone de saisie des critères.

    On ne peut pas faire

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [Sous formulaire] WHERE [MonCritère] = [LeChampsCritère]

    Le SQL ne travaille qu'avec les tables ou les requêtes pour ses sources de données.

    ce qu'on peut faire c'est dans un formulaire appliquer un filtre sur les données affichées par le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    me.Filter="[MonCritère] = " & me.[LeChampsCritère]
    me.filterOn=true
    Avec comme source de données :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select [TaTable].* from [taTable]

    ou même simplement définir la table comme source de données du formulaire.
    Comme tu vois il n'y a pas de clause Where dans mon SQL.

    Les formulaires sont des objets pour afficher des données et interagir avec elles.
    Ce qui est un mêlant c'est qu'on peut récupérer des données affichées par un formulaire pour ensuite ouvrir d'autres formulaires ou faire des calculs ou modifier ces données donc la frontière est un peu flou.
    Donc conceptuellement on pourrait assimiler un formulaire filtré (ou non) à une requête mais on peut pas le considérer comme une VRAIE requête et s'en servir comme telle.

    A+

    A+

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Bonjour et merci de ta réponse comme toujours

    Je vais voir ce que j'arrive à faire aujourd'hui avec toute tes explications, bien que je n'ai pas tout saisi (faudra que je me penche sur le code plus en détail...). En tout cas la méthode me convient, ça à l'air de faire le taf, reste plus qu'à savoir par où commencer
    Je posterais ici en cas de gros soucis.

    Encore merci

    EDIT : Est-ce que ce tuto ferais l'affaire ? J'ai bien l'impression que ça ressemble grandement à ce que tu m'expliquais plus haut ... ^^'
    http://cafeine.developpez.com/access...echerchemulti/

    EDIT 2 : Bon, j'ai recommencer de 0 en essayant de suivre tes consignes à la lettre. Pour le moment je n'ai pas attaqué le code, j'ai commencer par :

    1. Créer ma table t_référence et t_département
    2. Créer mon formulaire avec en en-tête des étiquettes (localisation, département etc) correspondant aux champs que je souhaite visualiser après filtrage. En bas de page je mets mes champs de filtre en format zone de texte ou liste déroulante. Pour le moment, ils n'ont pas de source contrôle sauf le département puisqu'il s'agit d'une liste déroulante, je veux pouvoir sélectionner les départements issus de la table t_département.
    3. Créer le sous formulaire en mode formulaire continu sans en-tête ni bas de page où je mets dans la partie détail des champs zone de texte où seront affichés mes entrées. La source contrôle du sous formulaire est la table t_référence : il va m'afficher les entrées que j'ai dans ma table. La source contrôle de mes champs correspond correspond aux colonnes de ma t_reference (donc la source contrôle du champs Localisation sera la colonne Localisation de ma table référence). La je rencontre un problème : https://www.developpez.net/forums/d1...-cle-primaire/ il m'affiche la clé primaire au lieu de la colonne de département. Donc la c'est peut-être normal puisque j'utilise une une autre table que la table t_référence pour les valeurs.

    Une fois que j'ai tout ça, que tous les contrôles sont ok, que je n'ai plus d'erreurs d'affichage, que ma mise en page est good j'ai bien compris (arrête moi si je me trompe) je passe au codage VBA selon tes recommandations (la partie la plus dure, ça va pas être facile n'y connaissant rien :p), et pas besoin de passer par des requêtes ? (je te fais surement répété, je m'en excuse ^^'). Aurais-je oublier quelque chose d'important ?

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    C'est la méthode en modifiant le SQL pas en appliquant un filtre car l'affichage se fait avec une liste et non un sous-formulaire et que les listes n'offrent pas la possibilité d'avoir des filtres.
    Par contre il est plus facile d'avoir un nombre de colonnes variable pour les résultats avec les listes.

    A+

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Hello, merci de ta réponse

    Je vais d'abord essayer de faire mon filtre avec ta méthode, éventuellement si j'ai le temps je suivrais le tuto de cafeine histoire de voir ce qui correspondrait le mieux (de plus le tuto nous guide ce qui m'éviterais d'être trop perdu).

    J'ai édité mon précédent poste, je ne sais pas si tu avais vu avant de reposter. Je reposte ce que j'ai édité ici au cas où :
    Bon, j'ai recommencer de 0 en essayant de suivre tes consignes à la lettre. Pour le moment je n'ai pas attaqué le code, j'ai commencer par :

    1. Créer ma table t_référence et t_département
    2. Créer mon formulaire avec en en-tête des étiquettes (localisation, département etc) correspondant aux champs que je souhaite visualiser après filtrage. En bas de page je mets mes champs de filtre en format zone de texte ou liste déroulante. Pour le moment, ils n'ont pas de source contrôle sauf le département puisqu'il s'agit d'une liste déroulante, je veux pouvoir sélectionner les départements issus de la table t_département.
    3. Créer le sous formulaire en mode formulaire continu sans en-tête ni bas de page où je mets dans la partie détail des champs zone de texte où seront affichés mes entrées. La source contrôle du sous formulaire est la table t_référence : il va m'afficher les entrées que j'ai dans ma table. La source contrôle de mes champs correspond correspond aux colonnes de ma t_reference (donc la source contrôle du champs Localisation sera la colonne Localisation de ma table référence). La je rencontre un problème : https://www.developpez.net/forums/d1...-cle-primaire/ il m'affiche la clé primaire au lieu de la colonne de département. Donc la c'est peut-être normal puisque j'utilise une une autre table que la table t_référence pour les valeurs.

    Une fois que j'ai tout ça, que tous les contrôles sont ok, que je n'ai plus d'erreurs d'affichage, que ma mise en page est good j'ai bien compris (arrête moi si je me trompe) je passe au codage VBA selon tes recommandations (la partie la plus dure, ça va pas être facile n'y connaissant rien :p), et pas besoin de passer par des requêtes ? (je te fais surement répété, je m'en excuse ^^'). Aurais-je oublier quelque chose d'important ?

    En tout cas un énorme merci pour le temps que tu me consacre.

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Non désolé je ne l'avais pas vu.

    Il n'est pas indispensable d'utiliser un sous-formulaire. Les formulaires en mode continu acceptent d'avoir des entêtes et des pieds de formulaires.
    Le sous-formulaire n'est obligatoire que si tu veux un affichage en mode feuille de données.

    Pour la liste déroulante de sélection, il ne faut pas indiquer de champ source associé au contrôle (là où tu pourrais enregistrer le choix dans une table) le et simplement préciser la source de la liste (les données affichées par la source).

    Tu peux te baser sur le tutorial pour la conception de ton filtre le code est très semblable. La différence est que pour le filtre tu ne gardes que la partie qui concerne la clause Where dans la conception du SQL.

    A+

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Merci pour la réponse :p

    En effet j'ai créer le sous formulaire en pensant que ce serait plus simple par la suite en mettant la table de référence en source du sous formulaire mais je peux très bien le faire aussi sur le formulaire.

    Pour la liste déroulante tu as entièrement raison, je me suis emmêler les pinceaux en répondant, je n'ai effectivement rien en source contrôle et j'ai extrait les données de la liste lors de sa création en utilisant la table du département.

    Reste le problème d'affichage de la clé primaire au lieu des départements mais je vois que tu m'aide déjà sur l'autre topic (merci !!!).


    Edit : Bon j'ai tenté d'adapter ton code à mon cas, j'ai une erreur quand je lance clique sur le bouton :
    https://gyazo.com/3a3cee4ff03e3f811512a39b9d8ff0c1

    J'ai essayer d'adapter ton code mais je ne sais pas si la syntaxe est importante sur le mot Filtre car dan ton code il y a filter, filtre, Filter, Filtre (le Filter correspond à une fonction ? Mais le reste, juste erreur de frappe ou cela à son importance ?)

    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
    Option Compare Database
     
    Private Sub Filter()
     
    '=== Calcule le filtre
    ' C'est ici qu'on va déterminer quelles données doivent être affichées en fonction des critères.
     
    Dim Filter As String
     
    If Not IsNull(Me.filtre_capacité1) And Not IsNull(Me.filtre_capacité2) Then
     
       If Filter <> "" Then
         Filter = Filter & " and "
       End If
     
       Filter = Filter & "([zdt_capacité] between " & Me.filtre_capacité1 & " and " & Me.filtre_capacité2 & ")"
    End If
     
    If Not IsNull(Me.filtre_date1) And Not IsNull(Me.filtre_date2) Then
     
       If Filter <> "" Then
         Filter = Filter & " and "
       End If
     
       Filter = Filter & "([zdt_date] between " & Me.filtre_capacité1 & " and " & Me.filtre_capacité2 & ")" 'note qu'on pourrait rendre le >= variable avec un truc du genre filtre=filtre & "([TonChamp2] " & me.OperateurTestV3 & " >= " & me.CritereV3 & ")"
    End If
    '--- Calcule le filtre
     
    '=== Applique le filtre au sous formulaire résulat
    Me.f_recherche.Form.Filter = Filter
    Me.f_recherche.Form.FilterOn = True
    '--- Applique le filtre au sous formulaire résulat
     
    End Sub
     
    Private Sub b_recherche_Click()
    Call Filter
    End Sub
    Des doutes sur la variable dim Filter As String (je ne vois pas à quoi filter correspond,). En fait filter dans mon cas serait mon champ critère ? Donc par exemple Dim filtre_capacité As Integer ? Pas clair clair tout ça encore.
    Pareil, je pense que je devrais mettre As Integer vu qu'il s'agit de valeur numérique.
    Vraiment pas évident quand on débute...

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Itriel Voir le message
    Edit : Bon j'ai tenté d'adapter ton code à mon cas, j'ai une erreur quand je lance clique sur le bouton :
    https://gyazo.com/3a3cee4ff03e3f811512a39b9d8ff0c1

    J'ai essayer d'adapter ton code mais je ne sais pas si la syntaxe est importante sur le mot Filtre car dan ton code il y a filter, filtre, Filter, Filtre (le Filter correspond à une fonction ? Mais le reste, juste erreur de frappe ou cela à son importance ?)

    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
    Option Compare Database
     
    Private Sub Filter()
     
    '=== Calcule le filtre
    ' C'est ici qu'on va déterminer quelles données doivent être affichées en fonction des critères.
     
    Dim Filter As String
     
    If Not IsNull(Me.filtre_capacité1) And Not IsNull(Me.filtre_capacité2) Then
     
       If Filter <> "" Then
         Filter = Filter & " and "
       End If
     
       Filter = Filter & "([zdt_capacité] between " & Me.filtre_capacité1 & " and " & Me.filtre_capacité2 & ")"
    End If
     
    If Not IsNull(Me.filtre_date1) And Not IsNull(Me.filtre_date2) Then
     
       If Filter <> "" Then
         Filter = Filter & " and "
       End If
     
       Filter = Filter & "([zdt_date] between " & Me.filtre_capacité1 & " and " & Me.filtre_capacité2 & ")" 'note qu'on pourrait rendre le >= variable avec un truc du genre filtre=filtre & "([TonChamp2] " & me.OperateurTestV3 & " >= " & me.CritereV3 & ")"
    End If
    '--- Calcule le filtre
     
    '=== Applique le filtre au sous formulaire résulat
    Me.f_recherche.Form.Filter = Filter
    Me.f_recherche.Form.FilterOn = True
    '--- Applique le filtre au sous formulaire résulat
     
    End Sub
     
    Private Sub b_recherche_Click()
    Call Filter
    End Sub
    Des doutes sur la variable dim Filter As String (je ne vois pas à quoi filter correspond,). En fait filter dans mon cas serait mon champ critère ? Donc par exemple Dim filtre_capacité As Integer ? Pas clair clair tout ça encore.
    Pareil, je pense que je devrais mettre As Integer vu qu'il s'agit de valeur numérique.
    Vraiment pas évident quand on débute...
    Je pense avoir trouvé un tuto assez simple, je le regarde plus en détail demain mais pour le moment ça m'a l'air de correspondre. Avec ça + tes conseils et explications il y a moyen que je m'en sorte. Pour ceux qui seraient intéressés : http://www.pcastuces.com/pratique/wi...hes/filtre.htm

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Bonjour bonjour,

    alors ce matin jai essayer de comprendre le code du tuto : http://www.pcastuces.com/pratique/wi...hes/filtre.htm

    Je l'ai adapté à mon cas, et ça me donne :

    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
    Private Sub b_recherche_Click()
     
    f = ""
     
    If Not IsNull(Me.filtre_département) And Me.filtre_département <> "" Then
        If f <> "" Then
               f = f & " AND zdt_département = """ & Me.filtre_département & """"
            Else
               f = "zdt_département = """ & Me.filtre_département & """"
        End If
    End If
     
    If Not IsNull(Me.filtre_date1) And Me.filtre_date1 <> "" And Not IsNull(Me.filtre_date2) And Me.filtre_date2 <> "" Then
        If f <> "" Then
               f = f & " AND clng([zdt_date]) BETWEEN " & CLng(Me.filtre_date1) & " AND " & CLng(Me.filtre_date2) & ""
            Else
              f = "clng([zdt_date]) BETWEEN " & CLng(Me.filtre_date1) & " AND " & CLng(Me.filtre_date2) & ""
        End If
    End If
     
    If Not IsNull(Me.filtre_capacité1) And Me.filtre_capacité1 <> "" And Not IsNull(Me.filtre_capacité2) And Me.filtre_capacité2 <> "" Then
         If f <> "" Then
               f = f & " AND clng([zdt_capacité]) BETWEEN " & CLng(Me.filtre_capacité1) & " AND " & CLng(Me.filtre_capacité2) & ""
           Else
               f = "clng([zdt_capacité]) BETWEEN " & CLng(Me.filtre_capacité1) & " AND " & CLng(Me.filtre_capacité2) & ""
          End If
    End If
     
    Me.Filter = f
    Me.FilterOn = True
     
    End Sub
    Ca à l'air correct, maintenant quand je clique pour la première fois sur le bouton après avoir renseigner mes champs critères, une fenetre d'ouvre me demandant de saisir une valeur de paramètre pour le champs censé afficher le résultat: https://gyazo.com/49452c1e7062100fc9b8bde1ce209b37

    Mon manque d'expérience dans le domaine me bloque quant à la résolution de ce problème. De plus, le filtre n'a pas l'air de fonctionner quand je rentre des paramètres et il ne me sort rien. Quand je désactive le filtre (en cliquant en dessous de mon formulaire) je ne peux plus refaire de recherche par la suite (pas grave puisque de toute façon elle ne fonctionne pas xD)

    Des idées ? y'avais déjà un sujet sur ce tutoriel : https://www.developpez.net/forums/d1...re-formulaire/
    Mais il ne m'apporte pas les réponses attendues ...

    MErci d'avance !

    Je continuerais bien avec ton code marot_r mais je bloque sur le terme filtre comme dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim filtre as string
     
    if not isnull(me.CritereV1) and not isnull(me.CritereV2) then
     
       if filtre <> "" then
         filtre=flitre & " and "
       end if
    Je ne vois pas à quoi cela correspond, si c'est un terme général, une fonction, une table, mon formulaire de recherche que tu as nommé filtre ? Ou bien tout simplement qu'il faut qu'il soit là ^^'

  16. #16
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dim filtre as string 'Ça c'est pour contenir le "texte" du filtre qu'on va calculer. 
    'J'ai choisi flltre mais on peut comme tu l'as fait choisir f ou MonFiltre ou MonSuperFiltreCalculeJustePourMoi. L'important c'est de donner un nom significatif dans le contexte.
    'Généralement utiliser un mot français évite d'entrer en conflit avec les mots réservés de Access et filtre me paraissait suffisement explicite.
    'Je pense que tu étais mêlé car on parle de filtre partout et on ne sais plus trop auquel on se réfère. Est-ce une variable ? Une propriété du formulaire ? Un champ du formulaire  ? ... désolé de la confusion.
     
    if not isnull(me.CritereV1) and not isnull(me.CritereV2) then 'Ç'est pour valider si ce critère est utilisé CritereV1 et CritereV2 son des noms bidons qu'il faut remplacer par les noms de contrôle dans le formulaire.
     
       if filtre <> "" then 'Comme on compose le filtre par petit bous, si il y a déjà un morceau alors ajouter l'opérateur "and" avant d'ajouter le morceau suivant.
         filtre=flitre & " and "
       end if
    A+

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Salut, et merci encore une fois pour tes réponses et tes précisions. Je vais travailler cela cet après midi en essayant de refaire quelque chose de propre, en espérant ne pas rencontrer trop de soucis. Je posterais ici en cas de nécessité si tu accepte toujours de m'aider (je pourrais comprendre que non vu le temps que tu m'as déjà consacré :p )

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Bonjour à vous, petit soucis lors du click sur le bouton avec comme 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
    39
    40
    41
    42
    Private Sub Filter()
     
    Dim filtre As String
     
    If Not IsNull(Me.filtredépartement) Then
     
       If filtre <> "" Then
         filtre = filtre & " and "
       End If
     
       filtre = filtre & "([département] = " & Me.filtredépartement & ""
    End If
     
    If Not IsNull(Me.filtrecapacité1) And Not IsNull(Me.filtrecapacité2) Then
     
       If filtre <> "" Then
         filtre = filtre & " and "
       End If
     
       filtre = filtre & "([capacité] between " & Me.filtrecapacité1 & " and " & Me.filtrecapacité2 & ")"
    End If
     
    If Not IsNull(Me.filtreannée1) And Not IsNull(Me.filtreannée2) Then
     
       If filtre <> "" Then
         filtre = flitre & " and "
       End If
     
       filtre = filtre & "([année] between " & Me.filtredate1 & " and " & Me.filtredate2 & ")"
    End If
     
     
    Me.f_recherche.Form.filtre = filtre
    Me.f_recherche.Form.FilterOn = True
     
    End Sub
     
    Private Sub b_recherche_Click()
     
    Call Filter
     
    End Sub
    L'erreur en question :

    Nom : erreur.png
Affichages : 599
Taille : 34,2 Ko

    Je ne comprends pas trop de où cela vient, surement une erreur dans le code ?
    J'ai modifié un peu le code pour des essais, j'ai enlever les _ , notamment pour le b_recherche et le f_recherche. Quand je lance avec brecherche et frecherche ça ne m'affiche pas d'erreur mais cela ne marche pas .

    EDIT : Alors avec b_recherche j'ai l'erreur, avec brecherche j'ai ... Rien ^^

  19. #19
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Renomme ta procédure Filtrer et non, je pense que Access confond avec la propriété filter du formulaire quand tu fais call Filter.

    A+

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Juillet 2017
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Juillet 2017
    Messages : 97
    Points : 34
    Points
    34
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Filter()
     
    Dim filtre As String
    Hello, tu veux parler de "Filter" ou la variable "filtre" ?

    J'ai essayer avec un au lieu de et c'est pareil. Le plus bizarre c'est que si je change le nom du bouton de recherche en brecherche il ne se passe rien (pas de filtrage) et si je lasse b_recherche là j'ai le message d'erreur.
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Formulaire de recherche requete
    Par toto&( dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/07/2006, 11h09
  2. Réponses: 6
    Dernier message: 28/06/2006, 15h01
  3. Réponses: 3
    Dernier message: 19/01/2006, 08h37
  4. Réponses: 3
    Dernier message: 20/10/2005, 12h42
  5. Réponses: 6
    Dernier message: 19/11/2004, 16h52

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