LeCompagnon.info en reconstruction

Access

Access: Les sous-formulaires



Avant de commencer
Introduction

Création du formulaire principal
Modifier le formulaire
Ajouter un sous-formulaire
Ajout d'un champ calculé total
Relation père-fils

Avant de commencer

Access vous offre plusieurs types de formulaires. Cette page Web vous démontre comment créer et utiliser un formulaire dans un formulaire. Pour plus d'informations sur les formulaires en général, veillez vous rendre à la page sur les formulaires.

On présume aussi que vous savez comment créer des formulaires. Aussi, il est très important que les relations entre les tables soient réalisés pour qu'il y ait un lien entre le formulaire et le sous formulaire sur un champ en commun. Dans ce cas, il s'agit du champ No facture de la table Facture et le champ Numéro de facture de la table Items de facture.

Les champs de plusieurs tables seront requis pour réaliser l'exercice de cette page. Vous devez utiliser la base de données exercices-access2010-1.accdb pour Access 2010. Cette base de données contiennent toutes les tables requises pour réaliser l'exercice. Vous les retrouverez à la page des fichiers de démonstration.

Introduction

Pour vraiment utliser une base de données, il faut être capable de chercher et d'afficher des données provenant de plusieurs tables. Cela veut souvent dire qu'il faut un formulaire principal, qui inclut les informations générales, avec un ou des sous- formulaires pour avoir plus de détails. L'exercice de cette page consiste à la création d'un formulaire pour la facturation de l'entreprise. Pour montrer toutes les informations que l'on retrouve normalement dans ce formulaire, il doit contenir un second formulaire qui décrit les items facturés.

Mais avant de pouvoir créer ce genre de formulaire, vous devez déjà avoir une bonne maîtrise d'Access. Les tables sont créés et possèdent des données. Vos tables sont reliés et vous êtes capable de créer des champs calculés. Assurez-vous de bien maîtriser ces concepts avant de créer un formulaire qui inclut un sous-formulaire.

 

Access 2010
Les tables
Modifier les tables
Les requêtes
Les relations
Les formulaires
Modifier les formulaires
Les sous-formulaires
Les états
Modifier les états

Exercices
État étiquette
Requête analyse croisé

Autres formations

Word 2003
Word 2007
Excel
VBA pour Excel
PowerPoint 2003
PowerPoint 2007
Access
Access 2010
Internet
Général
Intelligence financière
Vidéos

Navigation
Précédent
Suivant
Page Principale
FAQ
Nouveautés
Plan du site
Références
Motivations
Manuels de formation
Fichiers de démonstration
Droits d'auteur
Nous joindre
Par courriel
Abonnez-vous à
l'infolettre LCI





























Abonnez-vous à l'infolettre LeCompagnon.info




La création d'un formulaire de facturation se fait par étapes:

1) Création du formulaire
2) Modification du formulaire pour qu'il soit plus présentable et laisse de l'espace pour le sous-formulaire.
3) Ajouter le sous-formulaire
4) Caluler le total de la facture dans le sous-formulaire
5) Ajouter le champ calculé dans le formulaire principal

Avant de pouvoir créer le formulaire et un sous-formulaire, il faut déterminer quels seront les champs requis et dans quel formulaire ils vont se retrouver. Pour la facture, il faut les informations des tables Facture et Clients. Il faut aussi ajouter dans le sous-formulaire les informations des tables Items de facture ainsi que la description du produit et de son prix unitaire qui se retrouve dans la table Inventaire.

Access 2010 - relations pour sous-formulaire

Les champs en bleu seront dans le formulaire principal. Les champs en jaune seront dans le sous-formulaire. Il faut toujours qu'il y ait un élément en commun entre le formulaire principal et le sous-formulaire. Dans ce cas, il s'agit de la relation entre dle champ No Facture de la table Factures et le champ Numéro de facture de la table Items de facture. Le champ en commun du formulaire principal est appelé le "champ père" alors que le champ en commun du sous-formulaire est appelé le "champ fils". Il y a seulement une occurence du champ père. Mais il peut avoir plusieurs enregistrements avec les mêmes informations dans le champ fils.

Création du formulaire

Avant de pouvoir ajouter un sous-formulaire, il faut créer le formulaire principal. Celui-ci affichera les informations générales de la facture. Les informations sur les détails de la facture seront dans le sous-formulaire.

*Sélectionnez l'onglet Créer.
*Appuyez sur le bouton Assistant Formulaire.

Access 2010 - Sous-formulaire - Liste des premiers champs du formulaire principal

*De la liste des tables et des requêtes disponibles, sélectionnez la table Factures.
*Sélectionnez tous les champs de la table Formulaire en appuyant sur le bouton .

Access 2010 - Sous formulaire - Ajouts des champs de la seconde table pour le formulaire principal

En plus des informations de la table Factures, il faut les coordonnées du client. En utilisant la même fenêtre, allez chercher les informations requises.

*De la liste des tables et des requêtes disponibles, sélectionnez la table Clients.
*Utilisez le bouton pour choisir les champs Nom, Adresse, Ville et Code Postal dans cet ordre.
*Appuyez sur le bouton Suivant.

Access 2010 - Sous-formulaire - Choix du champ principal

L'assistant constate qu'il peut trier les enregistrements selon la clé primaire Numéro client ou par la clé primaire No Facture. Il vous demande par quel champ il doit trier les enregistrements. Pour cet exemple, on veut afficher les informations par facture et non par client.

*Sélectionnez par Factures.
*Appuyez sur le bouton Suivant.

Access 2010 - Sous-formulaire - Choix disposition des champs

L'assistant vous demande ensuite de choisir le type de présentation des champs. Seront-ils placés en colonne, en ligne, en feuille de données comme dans une table ou une requête ou en ligne jusqu'au bout de l'écran. Les autres champs suivront sur la ligne suivante.

*Sélectionnez l'option Colonne simple.
*Appuyez sur le bouton Suivant.

Access 2010 - Sous-formulaire - Choix du nom du formulaire principal et enregistrer

L'assistant vous demande pour terminer le nom que vous désirez donner au formulaire ainsi si vous voulez le voir ou le modifier.

*Pour le nom du formulaire, entrez Factures.
*Appuyez sur le bouton Terminer.

Access 2010 - Sous - Formulaire - Premier aperçu du formulaire principal

Access prend quelques instants pour générer le formulaire avec les informations requises. Access appelle chaque élément qui compose le formulaire, que cela soit du texte, une zone de texte (champ) ou autre, un "contrôle". Chacun a sa liste de propriétés que vous pourrez modifier. Remarquez que les champs sont dans l'ordre que vous les avez choisi. Vous constaterez que les champs Date et Code Postal ne sont pas assez long pour afficher correctement les informations. Il faudra les ajuster lorsque vous serez en mode création.

Modification du formulaire

Le formulaire est terminé. Mais il n'y a pas assez d'espace pour le sous-foumulaire. La prochaine partie consiste à modifier le formulaire ci-dessus et d'y inclure un sous formulaire.

Access 2010 - Affichage - Mode création

*De l'onglet Accueil, sélectionnez le bouton Affichage.
*Sélectionnez l'option Mode Création.
OU
*Placez le pointeur par-dessus le formulaire mais pas sur l'un des éléments.
*Appuyez sur le bouton droit de la souris.
* De la liste des options du menu contextuel, sélectionnez l'option Mode création.

Access2010 - Sous-formulaire - Mode création du formulaire principal

Le formulaire est trop petit pour les éléments qui doivent encore être ajoutés. Pour changer les dimension du formulaire, vous devez placez le pointeur sur la bordure du formulaire. Le pointeur va changer de forme. En gardant un doigt sur le bouton gauche de la souris, étendez le formulaire vers l'extérieur.

*Élargissez le formulaire à 19 cm.
*Allongez le formulaire à 15 cm.
*Déplacez les champs aux endroits indiqués sur l'image ci-dessus.

Ajouter le sous-formulaire

Il y a maintenant assez d'espace pour voir les items de la facture ainsi que le total. La prochaine partie consiste à créer le sous-formulaire.

Access 2010 - Sous-formulaire - Listes d'objets sur un formulaire

*Assurez-vous que l'option Utiliser les assistants Contrôle soit activé.
*De la liste des contrôles, appuyez sur le bouton Sous-Formulaire/Sous-État Access 2010 - Sous-formulaire - Contrôle.

Access 2010 - Sous-formulaire - Assistant de création

L'assistant pour les sous-formulaires/sous-états va vous demander quel sera la source du sous-formulaire. Est-ce une table, une requête ou un formulaire que vous avez déjà préparé.

*Sélectionnez l'option Table/Requête.
*Appuyez sur le bouton Suivant.

Access 2010 - Sous-formulaire - Assistant des choix de champs

*De la liste des tables et des requêtes disponibles, sélectionnez la table Items de facture.
*Utilisez le bouton pour sélectionnez le bouton Numéro de facture et Numéro de produit.

On ajoutera le champ Quantité une fois que d'autres champs de la table Inventaire auront été ajoutés.

Access 2010 - Sous-formulaire - Liste des champs pour sous-formulaire

*De la liste des tables et requêtes disponibles, sélectionnez la table Inventaire.
*Sélectionnez les chmaps Description et Prix unitaire.

Access 2010 - Sous-formulaire - Choix des champs du sous-formulaire

*De la liste des tables et des requêtes disponibles, sélectionnez la table Items de la facture.
*Sélectionnez le champ Quantité.

Il est préférable de choisir les champs requis dans l'ordre de présentation sur le formulaire. Cela va vous éviter de changer la présentation ainsi que le passage d'un champ à l'autre lorsque vous appuyez sur les touches Entrée ou Tabulation.

*Appuyez sur le bouton Suivant.

Access 2010 - Sous-formulaire - Déterminer la relation entre le formulaire et le sous-formulaire

L'assistant vous demande quels seront les champs en commun entre le formulaire et le sous-formulaire. Pour cet exercice, nous allons laisser Access trouver les champs en communs. Si cela ne fonctionne pas, vous verrez à la fin comment déterminer la relation père-fils entre le formulaire et le sous-formulaire.

*Sélectionnez l'option Choisir à partir d'une liste.

Si vous sélectionnez l'option Les définir moi-même. Vous devrez aussi déterminer quels sont les champs en commun entre le formulaire et le sous-formulaire.

Access 2010 - Sous-formulaire - Déterminer manuellement les champs qui relient le formulaire et le sous-formulaire

*Pour le champ en commun du formulaire, sélectionnez le champ No Facture.
*Pour le champ en commun du sous-formulaire, sélectionnez le champ Numéro de facture.

Vous aviez le choix entre laisser l'assistant trouver les champ en commun ou les déterminer par vous-même. Le reste des opérations pour terminer le sous-formulaire sont les mêmes.

*Appuyez sur le bouton Suivant.

Access2010 - Sous-formulaire - Déterminer le nom du sous-formulaire

*Laissez le nom du sous-formulaire à Items de facture sous-formulaire.
*Appuyez sur le bouton Terminer.

Le sous-formulaire est maintenant inclus.

Access 2010 - Sous-formulaire - Formulaire avec première version du sous-formulaire

*Allongez le sous-formulaire de 4 cm jusqu'à 19 cm pour toute la largeur du formulaire.

À moins qu'on indique autrement, la présentation des données du sous-formulaire est toujours en mode feuille de données comme dans les tables ou les requêtes. Le premier champ Numéro indique le numéro de la facture. Le second champ numéro indique le numéro de référence du produit de la table Inventaire.

Le total de la ligne

Malgré la création du sous-formulaire, il manque deux champs pour le compléter. Le premier champ calculé va déterminer le total de chaque ligne de vente. Le calcul sera quantité * prix unitaire. Le nom de ce champ sera TotalLigne. Le second champ calculé fera la somme du premier champ (TotalLigne) pour savoir le total d'une facture.

*De l'onglet Accueil, sélectionnez le bouton Affichage.
*Sélectionnez l'option Mode Création.
OU
*Placez le pointeur par-dessus le formulaire.
*Appuyez sur le bouton droit de la souris.
* De la liste des options du menu contextuel, sélectionnez l'option Mode création.

*Double-cliquez sur le sous-formulaire.
*De la liste des contrôles disponibles, sélectionnez Zone de texte Access 2010 - Formulaire - Zone de texte.
*Cliquez à la fin de la zone Détail du sous-formulaire.

Vous pourriez entrez directement la formule =[quantité]*[prix unitaire] dans la case. Mais il faut aussi changer certaines propriétés dont le nom du champ.

*Si vous ne voyez pas la liste des propriétés à la droite de l'écran, appuyez sur le bouton Access 2010 - Formulaire - Feuille de propriété.

Access 2010 - Sous-formulaire - Porpriété du champ calculé TotalLigne

Chaque "contrôle" placé sur un formulaire a sa propre liste de caractéristiques appelés des "propriétés". Les deux premières sont les plus importantes.

*Changez le nom à TotalLigne.

La propriété Source contrôle détermine le contenu de la zone de texte. Cela peut être le contenu d'un champ d'une table, d'une requëte, d'un formulaire ou même un champ calculé.

*Placez le pointeur dans la case Source contrôle.
*Appuyez sur le bouton à la fin de la case.

Access 2010 - Sous-formulaire - Formule du champ calculé TotalLigne

Cet action va ouvrir la fenêtre du générateur d'expression. Elle vous permet d'accéder à toutes les ressources à l'intérieur de la base de données.

*Dans la case d'expression, entrez la formule =[Quantité] * [Prix unitaire] .

Comme pour Excel, les formules pour les champs calculés dans les formulaires et les états commencent avec le signe =. Le nom des champs est placé entre crochets. Aussi, vous pouvez accéder à une liste de fonctions intégrés sous l'expression Fonctions.

*Appuyez sur le bouton OK pour sortir de la fenêtre du générateur d'expression.
*Appuyez sur la touche Entrée pour confirmer la formule.

*Changez l'étiquette de Texte10 à Total.

Access 2010 - Formulaire - Affichage  Mode formulaire

La prochaine étape consiste à voir l'impact de l'ajout du champ calculé TotalLigne au sous-formulaire.

*Du bouton Affichage, sélectionnez l'option Mode Formulaire.

Access 2010 - Sous-formulaire - Affichage du champ calculé TotalLigne dans le sous-formulaire

Il y a maintenant un nouveau champ au sous-formulaire qui indique le total de la ligne. Ajustez la largeur des colonnes si nécessaire.

Le total de la facture

Le formulaire montre maintenant les informations du formulaire ainsi que les items facturés. Mais il ne montre pas le total de la facture. Il faut ajouter un champ calculé pour le voir. La prochaine partie consiste à ajouter un champ calculé pour voir le total.

*De l'onglet Accueil, sélectionnez le bouton Affichage.
*Sélectionnez l'option Mode Création.
OU
*Placez le pointeur par-dessus le formulaire.
*Appuyez sur le bouton droit de la souris.
* De la liste des options du menu contextuel, sélectionnez l'option Mode création.

*Faites un double-clic sur le sous-formulaire.

Le sous formulaire apparaît. Il faut ajouter un champ calculé dans l'en-tête ou le pied du formulaire. L'endroit ou est placé le champ calculé a un impact sur le calcul. Un champ calculé placé dans la zone Détail fera seulement le calcul avec les données d'un enregistrement. Un champ calculé placé dans l'en-tête ou le pied du formulaire fera son calcul avec tous les enregistrements. Pour cet exemple, il sera ajouté dans le pied de formulaire. Il faut premièrement agrandir le pied de formulaire.

*Placez le pointeur au bas de la barre Pied de formulaire.

Le pointeur devrait changer de forme.

*En gardant un doigt sur le bouton gauche de la souris, déplacez le pointeur vers le bas.

La zone du pied de formulaire va s'agrandir. Il faut qu'il soit assez grand pour ajouter un champ calculé.

*De la liste des contrôles disponibles, appuyez sur le bouton Zone de texte Access 2010 - Formulaire - Zone de texte.
*Cliquez dans la zone du pied de formulaire.

Un champ vide va apparaître dans le pied de formulaire. Il faut maintenant ajouter la formule pour calculer le total et lui donner un nom significatif.

*Cliquez une première fois sur le nouveau champ.
*Cliquez une seconde fois dans le champ.

Vous pourrez ensuite écrire la formule requise.

Access 2010 - Sous-formulaire - Propriétés du champ calculé TotalItems

*Écrivez la formule suivante: =somme([Quantité] * [Prix unitaire]) .
*Appuyez sur la touche Entrée.

Comme dans Excel, les formules des champs calculés que l'on retrouve dans des formulaires ou des états commencent toujours avec le signe "=". Cette formule va le résultat Quantité * Prix unitaire pour tous les enregistrements. Il faut maintenant donner un nom significatif à ce nouveau champ calculé.

Access 2010 - Sous-formulaire - Enregistrer les modifications du sous-formulaire Enregistrez les modifications du sous-formulaire.

 

*Placez le pointeur sur le nouveau champ.
*De la listes des propriétés du champ, changez le contenu de la case Nom à TotalItems.

Puisque ce champ a été placé soit dans l'en-tête ou le pied du formulaire, il va maintenant faire la somme de tous les enregistrements de la table ou de la requête. Si ce même champ aurait été placé dans la zone détail, il aurait fait la somme que d'un seul enregistrement.

Ajouter le calcul du sous-formulaire dans le formulaire principal

Dans l'exercice précédent, nous avons ajouté un champ appelé TotalIems qui fait le total de tous les enregistrements. Il suffit maintenant de l'ajouter au formulaire Factures pour voir le total.

Nous sommes maintenant de retour en mode création du formulaire Factures. Il faut ajouter une référence au champ TotalItems dans ce formulaire pour voir le total des items de cette facture.

*Ajoutez une zone de texte en dessous du sous-formulaire en appuyant sur le bouton Access 2010 - Formulaire - Zone de texte.
*Placez le pointeur par-dessus le nouveau champ.

*De la liste des propriétés du champ, placez le pointeur dans la case Source contrôle.
*Cliquez sur le bouton ayant trois petits points à la droite de la case.

Access 2010 - Sous-formulaire - Formule de TotalNet

Cela va activer la fenêtre du générateur d'expression. Il faut spécifier à Access l'endroit où se trouve le champ TotalItems. Ce champ se retrouve dans le sous-formulaire Items de la facture.

*De la case de gauche, faites un double-clic sur le dossier Factures.
*Faites un double-clic sur le dossier Items de facture sous-formulaire.
*De la case du milieu, doublecliquez sur le champ TotalItems.
*Appuyez sur le bouton OK.
*De retour à la case Source contrôle, appuyez sur la touche Entrée.
*Changez le texte qui vient avec le champ à Total.

Le bouton OK choisi le champ. La touche Entrée confirme la formule. La case sera vide si vous ne faites pas ces deux opérations. Le total de la facture devrait apparaître la prochaine fois que vous afficherez le formulaire.

Access 2010 - Formulaire - Affichage  Mode formulaire

La prochaine étape consiste à voir l'impact de l'ajout du champ calculé TotalItems au sous-formulaire.

*Du bouton Affichage, sélectionnez l'option Mode Formulaire.

Le total est bien là. Mais va-t-il se mettre à jour si on change une valeur?

Access 2010 - Sous-formulaire- Formulaire complet avec résultat du sous-formulaire

*Placez le pointeur dans la case quantité de la quatrième ligne du sous formulaire (Planche à neige).
*Changez la quantité vendue de 4 à 5.
*Déplacez le pointeur vers le haut.

Le total du formulaire se met à jour lorsque vous changez d'enregistrement.

Les relations père-fils

Il est possible de la relation entre le formulaire et le sous-formulaire ne se fait pas. Mais vous pouvez toujours déterminer quels sont les champs en commun entre les deux tables. Le champ père est un champ qui provient du formulaire principal. Le champ fils est l'un qui se retrouve dans le sous-formulaire.

Access 2010 - Affichage - Mode création

*Sélectionnez le formulaire Factures.
*De l'onglet Accueil, sélectionnez le bouton Affichage.
*Sélectionnez l'option Mode Création.
OU
*Placez le pointeur par-dessus le formulaire mais pas sur l'un des éléments.
*Appuyez sur le bouton droit de la souris.
* De la liste des options du menu contextuel, sélectionnez l'option Mode création.

*Sélectionnez le sous-formulaire, mais pas l'un des contrôles de celui-ci.

L'intention est d'accéder aux propriétés du sous-formulaire au lieu de l'un de ses éléments.

Access 2010 - Sous-formulaire - Propriétés du sous-formulaire

L'image ci-dessus indique les propriétés du sous-formulaire incluant les cases Champs fils et Champs pères qui indiquent les champs en commun entre le sous-formulaire (fils) et le formulaire principal (père). Il doit se retrouver des champs en commun entre ces deux pour qu'une relation soit possible.

*Assurez-vous que le champ dans Champs fils est Numéro de facture.
*Assurez-vous que le champ dans Champs pères est No Facture.
*Fermez la fenêtre des propriétés.



 

Abonnez-vous à l'infolettre

Abonnez-vous à l'infolettre du site pour recevoir le manuel " 150 fonctions Excel expliquées ". Vous recevrez aussi les prochaines infolettres sur les nouveautés du site et des formations détaillées que vous ne trouverez nulle part ailleurs.


Cliquez ici pour vous abonner à l'infolettre





Ce site est hébergé par 1&1.com