LeCompagnon.info en reconstruction

Access

Access: Les sous-formulaires



Avant de commencer
Introduction

Création de requêtes
Création du formulaire
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 requêtes qui incluent des champs calculés. 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 Transition Fact-Inv.

 

Access
Les tables
Les requêtes
Exercices sur les requêtes
Les formulaires
Les formulaires graphiques
Les sous-formulaires
Les états
Les états étiquette
Les macros
Les relations
Exercice sur Access
Quiz sur Access

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


Les champs de plusieurs tables et requêtes seront requis pour réaliser l'exercice de cette page. Vous devez utiliser les bases de données demoacc2.mdb ou demoacc3.mdb, pour Access 97, ou demoa2k2.mdb ou demoa2k3.mdb pour Access 2000 et les versions suivantes. Ces bases de données contiennent toutes les tables requises pour réaliser l'exercice. Vous les retrouverez tous au bas de 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 provnant 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 requêtes avec des champs calculés. Assurez-vous de bien maîtriser ces concepts avant de créer un formulaire qui inclut un sous-formulaire.

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

1) Création des requêtes nécessaires
2) Création du formulaire
3) Modification du formulaire pour qu'il soit plus présentable
4) Ajouter le sous-formulaire
5) Caluler le total de la facture dans le sous-formulaire
6) Ajouter le champ calculé dans le formulaire principal

Création des requêtes nécessaires

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 Transition Fact-Inv ainsi que la description du produit et de son prix unitaire qui se retrouve dans la table Inventaire. Vous devez créer deux requêtes: l'une avec les champs requis pour la facture et l'autre sur les items de cette facture. On regardera ensuite comment avoir le total de cette facture.

*Du menu principal, sélectionnez l'onglet Requêtes Onglet requête.
*Appuyez sur le bouton Nouveau.
*Sélectionnez l'option Mode Création.
*De la liste des tables, sélectionnez les tables Clients et Facture.
*Appuyez sur le bouton Fermer.
*De la liste des champs de la table Facture, sélectionnez tous les champs dans le même ordre.
*De la liste des champs de la table Clients, sélectionnez les champs Nom, Adresse, Ville et Code Postal.
*Enregistrez cette requête sous le nom RFactures.
*Fermez la requête.

Créez une seconde requête.

*Appuyez sur le bouton Nouveau.
*Sélectionnez l'option Mode Création.
*De la liste des tables, sélectionnez les tables Transition Fact-Inv et Inventaire.
*Appuyez sur le bouton Fermer.

Puisque les relations entre les tables ont déjà été établies, vous devriez voir un lien entre les champs Numéro de produit de la table Transition Fact-Inv et le champ Numéro d'inventaire de la table Inventaire. Sinon, il faudra faire la relation entre ces deux champs.

*De la liste des champs de la table Transition Fact-Inv, sélectionnez tous les champs.

Vous pouvez aussi sélectionnez l'astérisque (*) au-dessus de la liste des champs. Cela aura l'effet de choisir tous les champs de la table.

*De la liste des champs de la table Inventaire, sélectionnez les champs Description et Prix unitaire.
*Créez un champ calculé STotal: quantité * [prix unitaire]

N'oubliez pas de mettre les crochets autour du champ Prix unitaire. Access se chargera de mettre les crochets autour de Quantité. Ce champ calculé va donner le total de chacun des items de la facture. On regardera plus loin comment avoir le total de tous les items de la facture.

*Enregistrez cette requête sous le nom RFactures-Items.
*Fermez la requête.

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.

*Du menu principal, sélectionnez l'onglet FormulairesOnglet formulaire.
*Appuyez sur le bouton Nouveau.

*Parmi les modes de création de formulaires, sélectionnez l'Assistant Formulaire.
*La source du formulaire sera la requête RFactures.
*Appuyez sur le bouton OK.

*Sélectionnez tous les champs de la requête en appuyant sur le bouton .
*Appuyez sur le bouton Suivant.

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 Facture.
*Appuyez sur le bouton Suivant.

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.

L'assistant a besoin de savoir quel type de présentation que vous voulez choisir. Cela inclus le fond du formulaire ainsi que la police de caractères qui sera choisi. Vous pouvez toujours changer ces options plus tard.

*Sélectionnez le style de présentation Standard.
*Appuyez sur le bouton Suivant.

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

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

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.

*Appuyez sur le bouton Mode création en appuyant sur le bouton.
OU
* Du menu Affichage, sélectionnez l'option Mode création.

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 à 16 cm.
*Allongez le formulaire à 10 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.

*Si la boîte à outils n'est pas affiché, appuyez sur le bouton .
OU
*Du menu Affichage, sélectionnez les options Barres d'outils et boîte à outils.

*De la boîte à outils, appuyez sur le bouton Sous-Formulaire.

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.

L'assistant vous demande ensuite quels seront les champs qui seront inclus dans le formulaire.

*De la liste des tables et des requêtes, sélectionnez la requête RFactures-Items.
*Sélectionnez tous les champs de la requête en appuyant sur le bouton .
*Appuyez sur le bouton Suivant.

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.

*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.

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

Le sous-formulaire est maintenant inclus.

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

*Passez au mode formulaire en appuyant le bouton .
OU
*Du menu Affichage, sélectionnez l'option Mode Formulaire.

À moins qu'on indique autrement, la présentation des données 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 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.

*Retournez en mode création en appuyant sur le bouton .
OU
*Du menu Affichage, 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. Pour cet exemple, il sera ajouté dans le pied de formulaire. Pour 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 barre d'outils, appuyez sur le bouton .
*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.

*Écrivez la formule suivante: =somme(stotal) .
*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 additionner les valeurs de tous les enregistrements stotal. Il faut maintenant donner un nom significatif à ce nouveau champ calculé.

*Placez le pointeur sur le nouveau champ.
*Appuyez sur le bouton droit de la souris.
*Du menu contextuel, sélectionnez l'option Propriétés.

*Changez le contenu de la case Nom à TotalItems.
*Fermer la fenêtre des propriétés en appuyant sur le bouton .

Puisque ce champ a été placé soit dans dans l'en-tête ou le puied 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. C'est pour cette raison qu'il était important de placer ce champ dans l'en-tête ou le pied du formulaire. Ces zones permettent d'accomplir des opérations sur tous les enregistrements au lieu d'un seul.

*Fermez le sous-formulaire en appuyant sur le bouton

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 s'appelle TotalItems. Il suffit maintenant de l'ajouter au formulaire Facture pour voir le total.

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

*Ajoutez un champ en dessous du sous-formulaire en appuyant sur le bouton .
*Placez le pointeur par-dessus le nouveau champ.
*Appuyez sur le bouton droit de la souris.
*Du menu contextuel, sélectionnez l'option Propriétés.

*Placez le pointeur dans la case Source contrôle.
*Cliquez sur le bouton ayant trois petits points à la droite de la case.

Cela va activer le 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 RFactures-Items.

*De la case de gauche, faites un double-clic sur le dossier Facture.
*Faites un double-clic sur le dossier Rfactures-Items sous-formulaire.
*De la case du milieu, sélectionnez le champ TotalItems.
*Appuyez sur le bouton Coller.
*Appuyez sur le bouton OK.
*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.

*De la barre d'outils, appuyez sur le bouton .
OU
*Du menu Affichage, sélectionnez l'option Mode formulaire.

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

*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.

*Sélectionnez le formulaire Facture.
*Allez en mode Création en appuyant sur le bouton .
OU
*Du menu Affichage, sélectionnez l'option Mode création.

*Sélectionnez le sous-formulaire.

*Appuyez sur le bouton droit de la souris.
*Du menu contextuel, sélectionnez l'option Propriétés.
OU
*De la barre d'outils, appuyez sur le bouton Propriétés.

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