Bonjour.
Je rencontre un petit problème qui dépasse mes compétences et que je vais essayer de résumer.
Dans Access 2010, j’ai une table, que j’appellerai Principale, qui contient donc l’essentiel de l’information, et une autre, disons la Secondaire, qui contient des informations récurrentes qui peuvent s’appliquer à plusieurs des enregistrements principaux. Chaque enregistrement principal peut recevoir plusieurs informations de la table secondaire.
J’ai donc bâti une relation « plusieurs à plusieurs » au moyen d’une table de jonction intermédiaire.
J’ai fait un formulaire à partir des informations principales qui contient un sous-formulaire avec les secondaires.
Tout va bien à ce stade, sauf que je ne peux pas filtrer mes enregistrements principaux en fonction d’une information secondaire : dans VBA, le filtre que je construis ne « voit » pas le champ qui se trouve dans le sous-formulaire.
J’ai résolu le problème en activant dans Add existing fields : Show all tables, en faisant glisser un champ de la table secondaire sur le formulaire principal (que j’ai pu effacer ensuite, ça ne changeait plus rien [?]). À partir de là le code du formulaire « voyait » le champ du sous-formulaire et je pouvais le filtrer.
Mais, surprise, le nombre d’enregistrements tel qu’affiché par Access apparaissait multiplié ! En fait, si un enregistrement ne contient qu’une information secondaire, il apparaît normalement ; sinon, Access affiche autant de fois l’enregistrement principal qu’il contient d’informations secondaires associées.
Connaissez-vous un moyen d’éviter ce phénomène ?
Autrement dit, comment mettre dans un formulaire des informations provenant d’une autre table et pouvoir filtrer selon elles ?
Merci d’avance pour votre aide.
Partager