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

Access Discussion :

Filtrage : lier comboBox avec sous formulaire


Sujet :

Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut Filtrage : lier comboBox avec sous formulaire
    Bonjour,

    je voudrais réaliser un filtrage sur un formulaire (en mode feuille de données) qui affiche les donnés d'une table, le tout via des comboBox.
    En gros j'ai 3 objets :
    - 1 control comboBox "type_filtre" qui correspond aux différents champs de ma table
    - 1 control comboBox "valeur_filtre" qui liste les valeurs (disctinctes) de la table pour le champs choisi dans la comboBox "type_filtre"
    - 1 sous formulaire "ssForm" qui affiche ma table


    Voici donc mes problèmes :

    a) comment initiliser "type_filtre" avec les légendes des champs de ma table ?
    (J'ai vu en VBA il y avait : myField.Properties("caption").Value )
    b) comment lier ma 2e comboBox à la 1ere (via Requete avec paramètre ? vu que ma 1ere combo contient les legendes et pas les noms des champs, comment faire ?)
    c) comment effectuer le filtrage ? (effectuer une requete où la clause WHERE correspond à la valeur de ma 2e combo ? si rien n'est choisi il faut que toute la table s'affiche donc pas de WHERE ?)

    En gros je n'ai qu'une idée globale de la solution... mais je sais pas où je dois mettre du VB, où je dois passer par l'interface, comment lié les deux...

    J'aimerais votre avis et vos conseil.
    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 268
    Points
    268
    Par défaut
    reponse a) Tu mets initialiser ta combo box dans la procedure "Sur ouverture" (generateur de code) dans les proprietes du formulaire en mettent : réponse b) tu cré une requete de recherche avec un parametres que tu écris comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE Champs = [Forms]![NomDuFormulaire]![NomDeLa1Combo]
    tu cré ta 2ieme combo avec l assistant est tu suis les instruction : tu relies donc cette combo a la 1iere.

    reponse c) A ta place, je passerai par deux requete.
    Si rien n est choisi : requete1 (sans parametre)
    Si quelques chose est choisi : requete2 (avec une condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE Champs = [Forms]![NomDuFormulaire]![NomDeLa1Combo]

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    a)
    combo.value = "..."
    pour moi cela remplie juste la valeur selectionnée, mais ca n'ajoute pas les différents Items. J'ai pas trouver la méthode ou propriéter à utliser (peu être ItemData, mais j'y arrive pas... )

    b)
    dsl, j'ai pas été assez précis sur ce problème.

    en réfléchissant un peu mieux, ca serait plutot un truc du genre ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT [combo1]
    FROM maTable
    car je veux en fait les résultats pour un seul champ, mais ce champs est fonction de combo1 ; mais mon problème que que [combo1] contiendrait la légende du champ et pas le nom et du coup ca merde


    c)
    oui, en effet j'ai pas pense à faire 2 requêtes, j'suis bête


    si j'arrive a faire a) et b), je pense que c) ira bien.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    je viens de voir que j'ai un autre problème. Mais si j'arrive pas a le résoudre ca sera moins beau mais plus facile.

    Mon sousFormulaire qui s'affiche en mode feuille de données, je voulais que le texte affiché dans l'en tête des colones corresponde à la légende du champs et pas au nom du champs.

    (si vraiment je trouve pas, j'éffacerai les légende des champs, et je mettrais des noms de champs adéquate ; même si ca casse les conventions de nommage, snif)

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 268
    Points
    268
    Par défaut
    ok alors j ai pas compris. qu est ce que tu appelles la légendes du champ? c est quelques chose que tu veux et qui ne changera pas ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    legende est une propriete de champs (table mode création)
    ca correspond au "AS" d'une recup (à mon avis)

    par ex, pour ma table "fichier", j'ai des champs :

    nom : "nom_fichier"
    legende : "Nom"

    ou

    nom : 'chemin_fichier"
    legende : "Chemin"
    ...

    En gros c une habitude que j'ai, mais je crois que je vais devoir changer avant de trouver une solution.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    ce que je vais faire pour le moment c'est enlever la notion de légende et travailler que sur le nom des champs...

    faut que je trouve comment remplir une comboBox selon le nom des champs d'une table (sauf pour la clef)

    sinon, 2e sacrifice, je rentre les valeurs à la main... que de sacrifice vers un code dégeulasse

    me reste à trouver comment changer la propriété "source" de mon ssformulaire...

    edit : j'ai fait comme dit ci dessus

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    pour récuper le nom des champs d'une table, j'ai trouvé en tombant sur un autre sujet (mea coulpa, j'aurais du encore plus insister sur la recherche, mais la base du problème n'était pas là à l'origine...)

    pour info

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim rs As New Recordset
    Dim f As Field
    Dim contenuTypeFiltre As String
     
    rs.Open "GOT_Fichier", CurrentProject.Connection
    contenuTypeFiltre = ""
    For Each f In rs.Fields
    If (f.Name <> "id_fichier") Then contenuTypeFiltre = contenuTypeFiltre & f.Name & ";"
    Next
    cbox_TypeFiltreFichier.RowSource = contenuTypeFiltre
    sinon, je suis passer par un simple formulaire et une liste... comme dans le tutoriel de rechercher multicritere de cafeine (je crois)

    PB résolu

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

Discussions similaires

  1. OpenArgs avec sous-formulaire
    Par condors89 dans le forum IHM
    Réponses: 1
    Dernier message: 02/05/2007, 20h13
  2. Réponses: 10
    Dernier message: 16/08/2006, 11h11
  3. [débutant] Pbl sur Etat avec sous formulaire
    Par william_58 dans le forum Access
    Réponses: 5
    Dernier message: 18/07/2006, 22h41
  4. Mettre à jour un controle par dblclik avec sous-formulaire
    Par lagratteCchouette dans le forum Access
    Réponses: 10
    Dernier message: 19/04/2006, 19h47
  5. Réponses: 19
    Dernier message: 26/01/2006, 08h44

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