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 :

Sous-formulaire avec filtre [AC-2013]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    employé
    Inscrit en
    Mars 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2019
    Messages : 29
    Points : 13
    Points
    13
    Par défaut Sous-formulaire avec filtre
    Bonjour,

    J'ai déjà chercher la réponse à divers endroit mais sans succès où alors je n'ai pas compris la manoeuvre.

    En gros, j'ai une base de donnée dans laquelle je lance une requete, cette requête m'ouvre un formulaire composé de sous-formulaire. Ce que je voudrais faire c'est créer un bouton qui ouvre le sous-formulaire plutôt que de l'avoir directement ouvert dans mon formulaire de base.

    pour illustre mes propos :

    J'ai dans mon critère de recherche une clé unique :
    J'ai créer des boutons (voir entouré de rouge) pour ouvrir les critères dans les sous-formulaires plutôt que de les avoir affiché comme dans la capture suivante

    Nom : clé.PNG
Affichages : 263
Taille : 45,8 Ko

    le soucis, c'est que quand je clique effectivement sur le bouton il ne prends pas en compte la clé unique qui était le résultat de la recherche. Que dois-je donc faire pour avoir la même référence dans mon nouveau sous-formulaire qui s'ouvre avec le bouton ?

    Nom : bouton.PNG
Affichages : 250
Taille : 4,3 Ko

    Merci d'avance, et si par ailleurs j'ai loupé l'information sur un post précédent j'en suis désolé (mais je veux bien le lien du post pour voir ce que je peux faire et comment surtout ^^)

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonsoir,
    est-ce bien sur le formulaire principal que se font les critères ? Si oui, quel contrôle (bouton ...) lance la requête ?
    A priori, su l'évènement click du bouton, on peut mettre à jour les données du sous-formulaire avec l'instruction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MonSousformulaire.Form.RecordSource = Me.MonSousformulaire.Form.RecordSource

  3. #3
    Membre à l'essai
    Homme Profil pro
    employé
    Inscrit en
    Mars 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2019
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    En fait le formulaire affiche le résultat d'une requête via un premier bouton et via ce bouton il demande deux informations différentes :

    Nom : recherche.PNG
Affichages : 246
Taille : 4,4 Ko

    Nom : rue.PNG
Affichages : 230
Taille : 6,9 Ko

    Nom : num.PNG
Affichages : 232
Taille : 4,8 Ko

    Ensuite il ouvre le résultat dans le formulaire de mon premier message.

    Et du coup dans les instructions de mon bouton, je dois rajouter la ligne de code ou bien modifier une ligne existante :

    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
    Private Sub AB_Habitable_Click()
    On Error GoTo Err_AB_Habitable_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "F_AB tjs habitable"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_AB_Habitable_Click:
        Exit Sub
     
    Err_AB_Habitable_Click:
        MsgBox Err.Description
        Resume Exit_AB_Habitable_Click
     
    End Sub

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonjour,
    Et du coup dans les instructions de mon bouton, je dois rajouter la ligne de code ou bien modifier une ligne existante :
    est-ce une question ?
    très étrange comme façon de faire un filtre ...
    peux-tu poster une copie de ta base avec des données non confidentielles ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    employé
    Inscrit en
    Mars 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2019
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Oui il s'agissait bien d'une question :s

    En gros j'ai hérité de la BD qui date de 2005 il me semble et je voudrais bien l'optimiser un peu et l'améliorer graphiquement (dans un second temps)

    Elle est compressée et un peu vidée des données qui pourraient être confidentielle (du moins je l'espère)

    Merci d'avance pour le temps que vous y passer.

    Bonne soirée/journée.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    en regardant la base je me rend compte que je n'avais pas du tout capté ta demande ... et je commence à comprendre aussi pourquoi tu veux l'améliorer ...

    pour commencer, il y a un 3ème paramètre demandé:

    Nom : _Capture1.JPG
Affichages : 224
Taille : 15,7 Ko

    le soucis, c'est que quand je clique effectivement sur le bouton il ne prends pas en compte la clé unique qui était le résultat de la recherche. Que dois-je donc faire pour avoir la même référence dans mon nouveau sous-formulaire qui s'ouvre avec le bouton ?
    tu n'ouvres pas un autre sous-formulaire mais une instance du formulaire F_AB tjs habitable.

    Les sous-formulaires sont des formulaires intégrés à un formulaire principal (exemple: F_AB tjs habitable et F_AB Inhab sont dans F_CONSULTATION).
    Du coup, je me demande quel est l'intérêt d'ouvrir une nouvelle instance du formulaire. Peut-être serait-il préférable de regarder pourquoi le filtre (la sélection par la clé unique) ne te convient pas ...
    La liaison entre le formulaire principal et le premier sous-formulaire (F_AB tjs habitable) se fait par la propriété champs pères/champs fils et les 2 valeurs sont BUID

    Nom : _Capture2.JPG
Affichages : 221
Taille : 25,7 Ko

    Est-ce que cela correspond à la clé unique dont tu parles ?

    Sinon, si tu souhaites quand même ouvrir le formulaire F_AB tjs habitable, il va falloir renseigner le critère d'ouverture (stLinkCriteria), quelque chose comme:
    stLinkCriteria = "MaCleUnique=" & Me.ControleContenantLaCléUnique
    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
    Private Sub AB_Habitable_Click()
    On Error GoTo Err_AB_Habitable_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "F_AB tjs habitable"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_AB_Habitable_Click:
        Exit Sub
     
    Err_AB_Habitable_Click:
        MsgBox Err.Description
        Resume Exit_AB_Habitable_Click
     
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    employé
    Inscrit en
    Mars 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2019
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    le troisième élément demandé pour le moment ne sert à rien et devrait disparaitre dans le futur, c'est pour cela que je n'en parlais pas.

    Il s'agit bien de la clé BUID qui devrait normalement permettre que dans mon critère de recherche ce soit le même partout.

    En gros, à terme je voudrais à partir de F_consultation pouvoir ouvrir F_AB tjs habitable et F_AB Inhab dans des fenêtres différentes d'ou l'idée des boutons (vu que pour le moment tout s'ouvre dans le formulaire F_Consultation). Mais s'il y a une autre possibilité que je n'ai pas entrevue je suis preneur aussi

    J'avoue que j'hésites même à repartir depuis zéro et copier les tables pour avoir les infos reprises dedans. C'est juste que je me disait au départ qu'il n'y aurait que quelques modifications "rapide" à faire ^^

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    Il fallait commencer directement par cette explication ...
    dans ce cas le code sera:
    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
    Private Sub AB_Habitable_Click()
    On Error GoTo Err_AB_Habitable_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "F_AB tjs habitable"
        stLinkCriteria = "BUID =" & Me!BUID
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_AB_Habitable_Click:
        Exit Sub
     
    Err_AB_Habitable_Click:
        MsgBox Err.Description
        Resume Exit_AB_Habitable_Click
     
    End Sub

  9. #9
    Membre à l'essai
    Homme Profil pro
    employé
    Inscrit en
    Mars 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2019
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Bonsoir,

    Encore merci pour l'aide, cela fonctionne parfaitement.

    Par contre j'ai un autre problème au niveau des informations père/fils pour le F_AB inhab, là le bouton ne donne rien du tout parce que la recherche ne se fait pas sur le critère BUID mais sur d'autres critères. J'imagine que du coup je dois changer dans le texte pour avoir la bonne référence mais je ne vois pas trop laquelle je dois faire intervenir :s

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 840
    Points : 14 944
    Points
    14 944
    Par défaut
    bonjour,
    J'imagine que du coup je dois changer dans le texte pour avoir la bonne référence mais je ne vois pas trop laquelle je dois faire intervenir
    tu imagines bien, et ce serait donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stLinkCriteria ="[Rue log]='" & Me!PWNA & "' AND [Hablog]=" & Me!ADPN
    d'après les champs pères: PWNA;ADPN et champs fils: Rue log;Hablog et en tenant compte du type de données, sachant qu'il est préférable d'utiliser des identifiants numériques si ils existent.

    Chose à savoir: en règle générale, on ne renseigne pas les champs pères/champ fils si il n'y a aucun lien entre 2 objets formulaires et sous-formulaires, donc par défaut, tous les enregistrements seraient affichés.
    Et pour afficher un enregistrement ou plusieurs en particulier, on peut soit utiliser les outils natifs d'Access (boutons de navigation, ou Rechercher un texte dans l'enregistrement en cours et aussi filtrer ou trier avec un clic droit sur n'importe quel champ à l'aide du menu contextuel). Nom : _navBouton.JPG
Affichages : 216
Taille : 13,3 Ko

    On peut aussi ajouter une liste déroulante contenant toutes les valeurs et sur l'évènement Click ou After_Update on charge le critère de sélection avec la colonne correspondant au champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stLinkCriteria = "Monchamp = " & Me.ListeDeroulante.Column(0)

  11. #11
    Membre à l'essai
    Homme Profil pro
    employé
    Inscrit en
    Mars 2019
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2019
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Un grand merci pour les réponses et le temps passé sur mon soucis.

    Je met le sujet comme résolu du coup.

    Si j'ai d'autres questions je reviendrai vers vous avec un nouveau post.

    Encore merci.

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

Discussions similaires

  1. Table dans un sous formulaire avec filtre
    Par totor92290 dans le forum IHM
    Réponses: 4
    Dernier message: 25/10/2017, 16h49
  2. Réponses: 0
    Dernier message: 12/03/2016, 09h28
  3. [AC-2007] Filtre sous formulaire avec "*"
    Par Renardo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 15/08/2014, 18h13
  4. Réponses: 8
    Dernier message: 13/08/2010, 09h18
  5. Sous-formulaire avec 1 seul enregistrement
    Par Farbin dans le forum Access
    Réponses: 6
    Dernier message: 08/08/2006, 16h37

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