Visites

   visiteurs

   visiteurs en ligne

Sujet n°100 Formulaire avec liaison N - 1 - N
    par cousinRV le 20/08/2007 : 00:03

Bonjour, wink

Tout d'abord, merci pour ce site que je viens de parcourir et que j'ai placé en suivant dans mes favoris afin de pouvoir y revenir puiser des informations.

Ensuite, je suis en train de me mettre à Access 2003 avec pour livre de chevet Access 2003, le guide complet chez Micro Application.

Enfin, je "développe" ou  plutôt tente de développer eek une application pour l'association dans laquelle je travaille. Ne voulant pas faire trop gros d'entrée, je me suis lancé dans la gestion des adhérents. J'ai, donc, créé

une table Adherent avec une clé primaire en NumAuto, et des champs détaillant l'état civil et les renseignements type adresse, téléphone

une table Date Adhésion avec une clé primaire en NumAuto, puis comme champs la date d'adhésion, le montant de cotisation et un commentaire.

J'ai relié ces deux tables par une table de jonction Adherent - Date Adhesion pour pouvoir gérer les renouvellements de cotisation. J'y ai, donc, mis une clé primaire en NumAuto, un champs cleAdherent en numérique et un utre cleDateAdhesion en numérique également.

Dans la partie Outils Relations, j'ai créé les relations 1 à N sur ces trois tables avec intégrité référentielle.

J'espère avoir été assez clair dans ma description car j'en viens à mon problème ; frown

je n'arrive pas à créer de formulaire Adhérent avec un sous-formulaire Date Adhesion. Je vous passe les détails des essais infructueux réalisés jusqu'à présent. cry

J'ai tenté de trouver ce problème sur la FAQ, sur le Forum et dans les mémos (sans compter le bouquin de MicroApplication) mais n'ai pas su dénicher le sujet correspondant. S'il existe, indiquez-le moi simplement afin que je ne vous fasse pas perdre de temps inutilement.

S'il n'y est pas, pourriez-vous m'aiguiller?

Merci de m'avoir lu jusqu'ici, d'avoir créé ce site, de vos réponses ou encouragements éventuels, bonne continuation, cordialement ;

cousin Rv (F-40 Marensin)


Réponse n° 1 par 3stone le 20/08/2007 : 02:15
Bonjour,

En fait, il suffit (en plus de la table tblAdherents) d'une seconde table tblAdhesion avec comme champs :

IdAdhesion, IdAdherent, DateAdhesion, Commentaires, ...

Le champ IdAdhérent sera un "entier long" mis en relation avec la clé primaire (IdAdherent - NumAuto) de la table tblAdherents.

Eventuellement, prévoir dans cette seconde table le champ TypeAdhesion (entier long) et une table  tblTypeAdhesion et les champs IdTypeAdhesion  - NulmAuto - clé primaire , TypeNom - texte, etc...

La table de jonction Adherent - Date Adhesion est inutile.

Pour alimenter le sous formulaire, il suffit de le baser sur la table tblAdhesion, ou mieux, sur une requête basée sur cette table. Dans la requête on pourra également spécifier un tri descendant sur la date d'adhésion.

PS :
Pour éviter les problèmes à la construction des tables - élément principal d'une base de données - il peut être bon de lire quelque chose comme "La normalisation" de la boite "Je débute..."
Le temps passé à assimiler cela sera largement compensé par la suite.

Cordialement,
Pierre
Réponse n° 2 par cousinRv le 20/08/2007 : 10:45

Bonjour Pierre,

Merci de ta réponse rapide et précise. wink

Si je l'ai bien compris, je n'obtiens avec cette solution qu'une

liaison 1 - N entre la table Adhérents (tblAdherents) et la table Adhésion (tblAdhesion),

la table type Adhesion (tblTypeAdhesion) servant de lien pour faciliter les modifications ultérieures telles celles qui sont données en exemple dans le chapître des 5 formes normales ( mise à jour du prix du menu en un seul endroit).

Si c'est cela, je ne peux accéder aux adhésions par date que par une requête. Ce qui est envisageable mais je souhaitais travailler sur la liaison N - 1 - N que j'arrive bien à visualiser et conceptualiser mais pas à intégrer dans des formulaires.

Je souhaiterais faire un formulaire d'accès par adhérent avec affichage et saisie des dates d'adhesion successives en passant par la

la table Adhérents (tblAdherents)

puis la table de jonction Adhérents-DateAdhésion (tblAdherents-DateAdhesion)

pour remonter sur la table Adhésion (tblAdhesion),

 et un autre avec par dates d'adhésion avec affichage des adhérents en passant par

la table Adhésion (tblAdhesion)

puis la table de jonction Adhérents-DateAdhésion (tblAdherents-DateAdhesion)

pour remonter sur la la table Adhérents (tblAdherents) .

Ceci ne me servant dans un premier temps qu'à améliorer mes connaissances de ce logiciel.  

Si l'on reprend l'exemple de la cantine du chapître sur les formes normales, comment construire

un formulaire sur lequel, on puisse par table connaître les plats à servir,

un autre qui nous permette par menus de savoir à quelles tables les envoyer

et un troisième qui nous donne par personne le menu prévu.

frown?

Merci de m'avoir lu jusqu'ici, bonne journée, cordialement ;

Rv (F-40 Marensin)

PS ; le chapître sur les formes normales est très bien décrit (tableaux et schémas clairs) et expliqués (exemples simples et parlants.) Merci et bravo pour cet effort pédagogique et rédactionnel qui a dû demander pas mal de temps devant le clavier.

 

Réponse n° 3 par 3stone le 21/08/2007 : 19:25
Bonjour,

Je ne vois pas bien le problème que tu pense rencontrer... et il est "normal" d'interroger les tables par des requêtes. C'est la base même de toute lecture.

Ceci dit, le sous-formulaire peut parfaitement être basé sur une requête qui regroupe la table tblAdhésion et la table tblTypeAdhésion.

La relation entre la table tblAdherents et la table tblAdhésion est bien de type 1 à N.

L'adhérent peut avoir des adhésions successives...

Ainsi, dans la table tblAdhésion, les enregistrements vont "s'empiller" par année d'adhésion.

Cordialement,
Pierre

Réponse n° 4 par cousinRv le 29/08/2007 : 07:42

Bonjour Pierre,

Merci de ta réponse cool et mes excuses pour le délai.

Fort de ton conseil sur la simplification de mes relations, je me suis exécuté et ai pu ainsi avancé. J'ai suivi ta recommandation sur l'utilisation des requêtes et suis arrivé à afficher des menus successifs, en les ouvrant, fermant et retriant avec des boutons de commande.

Je progresse, donc, et ceci grâce à ton aide. Mais cela signifie aussi que je suis confronté à de nouveaux problèmes que j'essaye de résoudre. Lorsque je verrai que je n'avance plus, je me permettrai de réutiliser ce forum.

Merci encore, bonne journée, cordialement ;

Rv (F-40  Marensin)

 

[ Retour à la liste des sujets ]

Recherche



Préférences

Se reconnecter
---

Votre nom (ou pseudo) :

Votre code secret


 Nombre de membres 1 membre


Connectés :

( personne )

Haut