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 :

Filter un formulaire par des valeurs d'une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Collaborateur scientifique
    Inscrit en
    Octobre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Collaborateur scientifique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Filter un formulaire par des valeurs d'une requête
    Bonjour à toutes et tous,
    Peut-être que ma question a déjà été posée (et résolue!) ici mais comme je ne suis pas sûr des termes employés, je n'ai pas trouvé de réponse à mon problème. Toutes mes excuses si la réponse se trouve ailleurs!

    Voici mes étapes:
    1. J'ai une table "tblStatistiques" alimentée par des données comptables dont je dois tirer des statistiques (et qui n'est pas du tout prévue pour ça à l'origine, mais c'est un autre problème...).
    2. J'effectue une première requête "qryStatistiques" afin de regrouper les enregistrements avec le même champ "N° dossier" puis je lance une requête sur "qryStatistiques" pour rechercher les doublons sur le même champ "N° dossier".
    3. A ce stade, je souhaite modifier les enregistrements repérés par ma 2ème requête. Il est difficile d'effectuer cette action automatiquement et il est nécessaire de l'effectuer manuellement.
    4. Mon problème: je souhaite donc ouvrir un formulaire empilé dont la source est "tblStatistiques" mais dont les enregistrements seraient filtrés par la 2ème requête.


    Est-ce possible? Comment dès lors configurer le filtre du formulaire (ou procéder autrement)?

    Je précise que le but est de configurer la base de données pour qu'une personne sans connaissance d'Access puisse accomplir cette tâche (sinon, j'irais modifier la table directement).

    Merci d'avance de votre aide!
    Venentius

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Une solution serait de créer un formulaire avec 2 sous-formulaires "continus" côte-à-côte :
    1- Le premier sous-formulaire à gauche "SForm1" sera basé sur ta 2ème requête. Il sera indépendant (ne sera pas lié au formulaire principal). Dessus, tu as normalement un champ "NumDossier".
    2- Tu mets une zone de texte "txtNumDossier" dans le formulaire principal dont la source sera le champ "NumDossier" du "SForm1" qui sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[SForm1].Form![NumDossier]
    La valeur de ce champ va dépendre du numéro de dossier qui sera sélectionné dans ton sous-formulaire "SForm1"
    3- Tu as ensuite un sous-formulaire à droite "SForm2" basé sur ta table "tblStatistiques" et dont il faut régler les champs Pères/Fils par "txtNumDossier" et le "NumDossier". Et on peut modifier les valeurs de ce sour-formulaire.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Modérateur

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

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

    Intéressante demande.

    Le filtre marche comme une clause "where" appliquée à la source de données du formulaire donc si tu peux reproduire dans un critère ta sélection tu devrais pouvoir le passer en paramètre au moment de l'ouverture par DoCmd.OpenForm.
    Si c'est un truc du genre Dcount("TonChamp", "TaSource", "TonCritere"), je pense que cela peut marcher.

    Sinon j'irai selon 3 pistes :
    1. créer dynamiquement la source de données au moment de l'ouverture du formulaire, ce qui te forcera peut-être à refaire ta logique de sélection.
    2. mettre comme source de données du formulaire un truc du genre
      Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
      select taSource.* from taSource where taSource.TaClef in(select taRequeteSelection.TaClef form taRequeteSelection)
      .
    3. Créer un champ "EstDoublon" de type Oui/Non dont la valeur par déafut est False dans la table qui content les données.
      Cocher ce champ avec une requête de MAJ ou du VBA
      Ouvrir le formulaire en ne gardant que les enregistrements où EstDoublon est vrai.


    2 et 3 étant mes favoris.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Collaborateur scientifique
    Inscrit en
    Octobre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Collaborateur scientifique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Merci pour vos réponses madefemere et marot_r!

    Je vais essayer la solution n°3 de marot_r - ça semble dans mes cordes - et vous tient au courant.

    Cordialement.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Collaborateur scientifique
    Inscrit en
    Octobre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Collaborateur scientifique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Rebonjour,

    Finalement la solution 2 est tout à fait efficace et simple à mettre en œuvre.

    Un immense merci pour l'aide et le temps précieux gagné!

    Bien cordialement.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Collaborateur scientifique
    Inscrit en
    Octobre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Collaborateur scientifique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Me revoilà...
    Bonjour,

    c'était trop beau pour être vrai...

    Je viens de tester ma base de données avec de nouvelles données et là c'est le drame...

    En effet, le formulaire de recherche de doublons sélectionne des données "erronées": c'est comme si le formulaire redonnait le détail des données de la table T_Statistiques, en omettant le regroupement effectué dans la première requête. Résultat, dans la requête de recherche de doublons j'ai 200 enregistrements et dans le formulaire 500.

    Avez-vous une idée pour contourner ce problème? Merci d'avance et cordiales salutations.

    Venentius

Discussions similaires

  1. [Débutant] Conversion d'unités des valeurs d'une requête - VB .NET
    Par Aiman.elmachi dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/06/2014, 09h20
  2. Réponses: 18
    Dernier message: 18/04/2014, 21h42
  3. Réponses: 2
    Dernier message: 12/10/2012, 08h49
  4. COmment modifier des valeurs dans une requête?
    Par thibouille dans le forum Bases de données
    Réponses: 20
    Dernier message: 26/02/2008, 16h43
  5. Remplacer des balises par des valeurs dans une String
    Par RadicalBob dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2007, 15h22

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