I. INTRODUCTION▲
Souvent, le besoin se fait sentir d'afficher toutes les données liées à une information « maître ». Les exemples concrets ne manquent pas : détail d'une facture, détail d'une commande, liste des articles d'un fournisseur, etc.
Je vais donc, au long de ce tutoriel, vous présenter la démarche à suivre pour créer ce genre d'objet sous Access.
II. PRÉSENTATION DU PROJET▲
II-A. Le cahier des charges▲
Pour illustrer ce propos, je vous propose de faire un courrier qui rappelle aux adhérents indélicats la liste des livres empruntés dans notre bibliothèque et qui suite à un oubli ont omis de les rendre à la date prévue.
Dans la liste des ouvrages non rendus, on trouvera :
- le titre du livre ;
- Le nom et le prénom de l'auteur concaténés ;
- la date de l'emprunt ;
- la date de retour prévue ;
- le nombre de jours de retard ;
- l'amende à payer. (on considérera 0.10 € par jour de retard).
À noter que la date de retour prévue est une date calculée par l'application et fait donc partie de la table des emprunts.
Vous trouverez la base de travail à la fin de l'article dans le chapitre « TÉLÉCHARGEMENT ».
II-B. Les tables en jeu▲
Afin de réaliser notre projet, nous utiliserons plusieurs tables :
Nom de la table |
Description |
Relation |
---|---|---|
T_Ouvrages |
Table qui contient les données de l'ouvrage. |
CodeLivre -> Clé Primaire. |
T_Auteurs |
Table qui contient les caractéristiques des auteurs. |
CodeAuteur -> Clé Primaire. |
T_Adherents |
Table qui contient les informations concernant des adhérents de la bibliothèque. |
CodeAdherent -> Clé Primaire. |
T_Emprunts |
Table qui contient la date d'emprunt, de retour prévue et un champ « Rendu » de type booléen. |
CodeLivre - > Clé étrangère en liaison avec la table T_Ouvrages. |
II-C. Les sources de nos états▲
Chaque état aura sa propre source, mais tous les deux auront un champ commun.
En effet, l'état principal doit nous afficher les coordonnées de notre adhérent et le sous-état doit nous lister les livres non rendus par le même adhérent. Nous retrouverons donc dans chaque requête le champ « CodeAdherent ».
II-C-1. Requête source de l'état principal▲
Cette requête nous donne la liste des adresses des adhérents concernés. Elle appelle trois remarques :
1) J'ai créé un champ calculé pour concaténer le nom et le prénom de l'adhérent.
Cela permettra de ne manipuler qu'un seul champ au lieu de deux dans l'état ;
2) J'ai créé un champ calculé pour concaténer le code postal et la ville de l'adhérent.
Même raison que ci-dessus ;
3) Le champ DateRetour n'est pas affiché. En effet, la requête m'affiche autant d'enregistrements d'adhérents qu'il y a de livres non rendus.
Il nous faut donc paramétrer les propriétés de la requête pour masquer les doublons.
|
Pour modifier les propriétés de la requête : |
II-C-2. Requête source du sous-état▲
Cette requête nous donne la liste des ouvrages non rendus à temps pour chaque adhérent. Je ferai six observations sur celle-ci :
1) On retrouve le champ « CodeAdherent » qui servira de lien avec le champ « CodeAdherent » de l'état principal ;
2) J'ai créé un champ calculé pour concaténer les infos de l'auteur.
Cela permettra de ne manipuler qu'un seul champ dans l'état ;
3) Le champ « DateRetour » est affiché dans la requête. En effet, il doit être affiché dans l'état ;
4) J'ai créé un champ « Retard » pour le nombre de jours de retard ;
5) J'ai créé un champ « Pénalité » pour indiquer le montant de l'amende due (0.10 € par jour de retard) ;
6) Le champ « Rendu » nous sert bien sûr de critère de sélection.
|
D'autre part, on peut remarquer que les données du champ « Retard » sont formatées (exemple : 76 jours). |
Nous avons préparé les sources de nos différents états, il ne nous reste maintenant qu'à les mettre en forme.
III. RÉALISATION DES ÉTATS▲
III-A. Préparation du sous-état▲
|
Voici ci-contre l'aperçu du sous-état des ouvrages non rendus. |
|
Voici l'état en mode création. J'aurai deux remarques importantes à faire : |
Pour retrouver comment organiser vos contrôles sur votre état, je vous renvoie à l'article : Créer un état.
III-B. Préparation état principal▲
On peut faire plusieurs remarques par rapport à la structure de l'état principal :
1) Implantation des champs de la requête source de l'état principal.
Le champ « CodeAdherent » n'est toujours pas implanté ;
2) On utilise le champ de type Étiquette (bouton Aa dans la boîte à outils) pour créer les textes fixes ;
3) L'espace pour le sous-état a été réservé. Le cadre sera supprimé au moment de l'implantation ;
4) Un nouveau champ de type Étiquette a été créé. On remarquera que pour créer des paragraphes dans l'étiquette on appliquera le raccourci clavier : SHIFT + ENTRÉE ;
5) La ligne des salutations n'est pas une étiquette, mais une zone Texte (bouton ab dans la boîte à outils).
En effet, il y a une concaténation de texte fixe avec le champ Civilité.
III-C. Implantation du sous-état▲
Il ne nous reste maintenant qu'à implanter le sous-état dans l'état principal. Cette opération se déroulera en trois étapes.
Étape 1▲
Étape 2▲
|
Le sous-état implanté développe un espace dont les mesures correspondent à ses dimensions. |
Étape 3▲
Il ne nous reste qu'à paramétrer la liaison entre l'état principal et le sous-état. |
Il est possible de saisir directement les noms des champs pères et fils dans les lignes correspondantes.
IV. CONCLUSION▲
Ce petit article vient en complément de Création d'un état afin de vous rendre autonome sur la création de ce type d'objet.
V. TÉLÉCHARGEMENT▲
Cliquez sur ce lien pour récupérer la base exemple.
VI. REMERCIEMENTS▲
Un grand merci à fabsnz, Dolphy35, Claude Leloup pour leur relecture attentive.
Ainsi que Loufab pour ses encouragements. Je voudrais remercier l'ensemble de l'équipe DVP pour son travail énorme qui a fait de Developpez.com ce qu'il est aujourd'hui et qui nous tire toujours vers le haut.