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

Modélisation Discussion :

Filtre sur plusieurs colonnes


Sujet :

Modélisation

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Filtre sur plusieurs colonnes
    Bonjour,

    Le titre n'est pas évident à trouver...

    Je vous explique une partie de ma base de données :

    Les membres de l'association paient une cotisation tous les ans, et un droit d'entrée pour les nouveaux membres ou ceux qui changent de statut.
    Du coup, comme le paiement de la cotisation n'implique pas forcément le paiement du droit d'entrée et inversement, j'enregistre les règlements séparément :
    Membre / Réf remise de chèque COTISATION / rappel du montant
    Membre / Réf remise de chèque DROIT D'ENTREE / rappel du montant

    Exemple de données (le montant est déterminé par un champ calculé dans ma requête, donc je ne le saisis pas):
    Cotisations :
    Monsieur A / remise 09001 / 300 €
    Monsieur B / remise 09001 / 270 €
    Monsieur C / remise 09002 / 270 €
    Droits d'entrée :
    Monsieur A / remise 09001 / 100 €
    Monsieur C / remise 09003 / 100 €

    Tout ça apparait dans une requête que j'utilise sous la forme d'un tableau croisé dynamique où j'ai mis la référence de remise en filtre.

    A partir de là, je dois générer un bordereau de remise de chèque.
    Ainsi, sur une seule remise, certains membres auront payé seulement la cotisation, d'autres seulement de droit d'entrée, et d'autres auront payé les deux...

    Comment puis-je faire pour que, quand je sélectionne la remise 09001, cela m'affiche les cotisations de Messieurs A et B et le droit d'entrée de Monsieur A ?

    De même, quand je choisis la remise 09002, je ne veux QUE la cotisation de Monsieur C, et quand je choisis la remise 09003, je ne veux QUE le droit d'entrée de ce même Monsieur C...

    Le problème étant que je dois concevoir la BDD mais qu'une autre personne va l'utiliser, et elle ne connait rien à access, les requêtes etc... donc le BDD doit être livrée "clés en main"...

    J'ai déjà essayé plusieurs méthodes, mais je bloque toujours au même point.

    Alors si vous avez des idées, je prends...

    Merci à vous...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Salut,

    tu as regardé du côté des jointures??

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    oui et non...

    lorsque j'essai de les changer, soit je n'ai toujours pas le résultat voulu (ou même pas de résultat !), soit ça me met un message me disant que les relations sont trop ambigues ou je sais pas quoi (message d'erreur)...

    car en fait, la BDD est assez grosse, beaucoup de tables et requêtes, et du coup des fois mes liaisons ne fonctionnent pas...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    et bien si tu as une requête à nous montrer, on pourrait l'utiliser comme base de départ

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Voilà...

    Dans la requête, les objets correspondent à :
    • "Cotisations 2009 Appel" est une requête existante (pour m'éviter de refaire certains calculs, sinon il faut que je rajoute toutes la tables correspondantes...),
    • la table 3-Statut... identifie les membres
    • les tables commençant par 4- sont celles qui contiennent les montants
    • les tables commençant par 5- sont celle où je saisis les règlements

    la requête affichée n'est pas modifiable (au niveau des données), surement à cause des relations j'imagine... ? mais j'en utilise d'autres pour la saisie.

    J'ai pas élargi les champs contenant des formules, si besoin je le ferai, mais ça prend de la place !

    Ah, et... chez moi je suis sous access 2007 mais au boulot j'ai 2003.

    Et j'aurais surement pu ne faire qu'une seule table pour le montant des cotisations, mais sur le coup j'ai eu des difficultés et ça marchait comme ça...
    De même, avant je n'avais qu'une table d'enregistrement des règlements, mais n'arrivant pas à faire ce que je voulais, j'essaie d'autres méthodes...
    Images attachées Images attachées    

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Salut,

    tu aurais du nous donner les requêtes en SQL
    Si ces deux requêtes de sélection donnent le résultat attendu, regarde pour faire une requête UNION:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    REQUETE1
    UNION
    REQUETE2

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    merci, je vais m'entrainer à ça... j'ai essayé un peu mais j'ai pas encore trop réussi (le SQL j'avais jamais été voir...!)

    en attendant, revoici ma requête, en SQL donc cette fois ci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Cotisations 2009 Appel].Membre, [Cotisations 2009 Appel].Catégorie, [Cotisations 2009 Appel].Honoraire, IIf([Date élection MT MA CE] Between #1/1/2008# And #12/31/2008#,[Droit Statutaire d'entrée 2008],IIf([Date élection MCN] Between #1/1/2008# And #12/31/2008#,[Droit statutaire d'entrée 2008],0)) AS DE2008, IIf([Date réglement Droit d'entrée 2008]>#1/1/2009#,[DE2008],0) AS [Droit d'entrée 2008], [5-Règlement Cotisations].[Date Réglement Droit d'Entrée 2008], [Cotisations 2009 Appel].[Reliquat 2008], [5-Règlement Cotisations].[Date Réglement Cotisation 2008], [Cotisations 2009 Appel].[Cotisation 2009], [5-Règlement Cotisations].[Soutien personnel 2009], [5-Règlement Cotisations].[Date Réglement Cotisation 2009], IIf([DE2008]>0 And [Date Réglement Droit d'entrée 2008]>#1/1/2009#,[Reliquat 2008]+[cotisation 2009]+[Soutien personnel 2009]+[DE2008],[Reliquat 2008]+[cotisation 2009]+[Soutien personnel 2009]) AS [Total C2009], [5-Règlement Cotisations].[Banque émettrice 2009], [5-Règlement Cotisations].[Référence remise 2009], [Cotisations 2009 Appel].[Droit d'Entrée 2009], [5-Règlement Droits d'entrée].[Date Réglement Droit d'Entrée 2009], [5-Règlement Droits d'entrée].[Banque émettrice 2009], [5-Règlement Droits d'entrée].[Référence remise 2009]
    FROM [4-Droit Statutaire d'Entrée] INNER JOIN ([4-Cotisations Titulaires] INNER JOIN ([4-Cotisations Honoraires] INNER JOIN ((([Cotisations 2009 Appel] INNER JOIN [5-Règlement Cotisations] ON [Cotisations 2009 Appel].Membre = [5-Règlement Cotisations].Membre) INNER JOIN [5-Règlement Droits d'entrée] ON [Cotisations 2009 Appel].Membre = [5-Règlement Droits d'entrée].Membre) INNER JOIN [3-Statut académique] ON [Cotisations 2009 Appel].Membre = [3-Statut académique].Membre) ON ([4-Cotisations Honoraires].Catégorie = [3-Statut académique].Catégorie) AND ([4-Cotisations Honoraires].Catégorie = [Cotisations 2009 Appel].Catégorie)) ON ([4-Cotisations Titulaires].Catégorie = [3-Statut académique].Catégorie) AND ([4-Cotisations Titulaires].Catégorie = [Cotisations 2009 Appel].Catégorie)) ON ([4-Droit Statutaire d'Entrée].Catégorie = [3-Statut académique].Catégorie) AND ([4-Droit Statutaire d'Entrée].Catégorie = [Cotisations 2009 Appel].Catégorie)
    ORDER BY [Cotisations 2009 Appel].Membre;

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour !

    après plusieurs essais, je n'ai pas obtenu le résultat souhaité.

    j'ai donc réorganisé mes tables et requêtes, et après quelques tentatives, j'ai enfin trouvé la méthode qui me convenait.
    Ainsi je n'ai pas perdu de fonctionnalités, ce n'est pas plus compliqué à gérer (voire plus simple) et tout marche.

    Merci !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Salut.

    Quelle méthode as-tu utilisée??
    Décris la un peu, que d'autres internautes puissent trouver la solution s'ils rencontrent le même problème que toi...

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Décrire la méthode... je n'avais pas osé, car c'est pas vraiment une procédure...

    Dans mon cas, la méthode a été de repenser ma façon de gérer les cotisations.

    Plutôt que d'afficher une requête pré-remplie avec le nom des membres, et ainsi de n'avoir qu'une ligne pour chacun avec un champ "remises cotisation" et un champ "remise droit d'entrée", j'ai une requête où j'appelle les membres au fur et à mesure des règlements, ainsi, si Monsieur Machin paie sa cotisation en mars et donc droit d'entrée en juin, il apparaitra 2 fois, mais certains champs seront remplis uniquement lors du premier règlement, et les autres champs seront remplis uniquement lors du deuxième.
    Ma table est donc basée sur une double clé primaire : le membre + le n° de la remise.

    Résultat des courses : j'ai supprimé et refait toutes mes tables et requêtes concernant la partie des règlements. Cela a impliqué de re-saisir une partie des données, donc mieux vaut ne pas attendre d'en avoir de trop...

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

Discussions similaires

  1. Filtre sur plusieurs colonnes dbgrid
    Par masterdash dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/07/2013, 14h15
  2. [XL-2010] Filtre sur plusieurs colonnes / filtre impossible si cellule vide !!!
    Par le-guedin dans le forum Macros et VBA Excel
    Réponses: 41
    Dernier message: 15/02/2013, 10h29
  3. Filtres sur plusieurs colonnes avec OU
    Par JackIsJack dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/05/2011, 16h40
  4. Filtre sur plusieurs colonnes
    Par bellenthan dans le forum Excel
    Réponses: 2
    Dernier message: 10/12/2010, 10h57
  5. filtre sur plusieurs colonnes en vba
    Par caloumaya dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/05/2007, 14h05

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