Vous êtes sur la page 1sur 21

Cours ACCESS

Les ETATS

1. 2. 3. 4. 5. 6.

Cration d'un tat................................................................................................................. 2 Cration d'un tat Instantan Colonnes............................................................................... 3 Cration d'un tat Instantan Tableau.................................................................................. 4 Cration d'un tat avec plusieurs tables.............................................................................. 9 Modifier la structure d'un tat..............................................................................................11 Insertion d'un sous-tat.......................................................................................................16

Page 1 sur 21

Cours ACCESS

Les ETATS

LES ETATS
Les tats vont permettre l'impression d'enregistrements selon une prsentation qui aura t dfinie pralablement. La cration d'un tat ressemble fortement la cration d'un formulaire.

1.

Cration d'un tat


Pour crer un tat, dans la fentre principale d'Access, cliquez sur l'onglet "Etats", puis sur "Nouveau" :

Il y a plusieurs mthodes pour crer un tat : ?? Mode cration : on cre tout de A Z, on n'utilisera pas cette mthode ?? Assistant Etat : Access va nous guider pas pas dans la cration d'un tat complexe ?? Etat Instantan : Colonnes : Access va gnrer automatiquement un tat partir du contenu d'une table, la prsentation se fera comme dans un formulaire, sous forme de colonnes : gauche on aura le nom du champ et droite, son contenu. ?? Etat Instantan : Tableau : Access va gnrer automatiquement un tat partir du contenu d'une table mais sous forme de tableau, on aura en haut de la page le nom des champs et en dessous, le contenu pour chaque enregistrement, comme dans la prsentation d'une table ?? Assistant Graphique : Pour crer un graphique, nous verrons cela plus tard ?? Assistant Etiquette : Pour crer automatiquement des tiquettes partir du contenu d'une table, nous ne verrons pas cette option.

Page 2 sur 21

Cours ACCESS

Les ETATS

2.

Cration d'un tat Instantan Colonnes

Nous allons crer un tat rapidement partir de la table Clients :

Notez qu'on choisi la table dans le menu du bas. Access nous gnre automatiquement l'tat suivant (en mode prvisualisation)

On a en haut le titre de la table, gauche le nom du champ et droite le contenu, chaque enregistrement est spar par un trait.

Page 3 sur 21

Cours ACCESS

Les ETATS

3.

Cration d'un tat Instantan Tableau

Et Access gnre l'tat suivant :

En haut, le nom de la table, suivi du nom des champs et sur chaque ligne, le contenu des champs pour chaque enregistrement.

Page 4 sur 21

Cours ACCESS

Les ETATS

1.

Cration d'un tat partir de l'assistant

Nous utiliserons dsormais cette mthode pour crer un tat, les deux mthodes prcdentes tant trop restrictives.

Comme prcdemment, on choisit partir de quelle table va tre cr l'tat, si on veut crer un tat partir de plusieurs tables, on ne met rien ici, on renseignera la provenance des donnes dans l'cran suivant :

Comme pour la cration d'un formulaire, on choisit gauche les champs que l'on veut voir apparatre dans l'tat, notez que si vous voulez afficher des champs provenant de plusieurs tables, vous choisirez dans le menu "Table/requtes " une nouvelle table, les champs correspondants s'afficheront en dessous. Comme dans les formu laires, pour ajouter un champ, on utilise l'icne ">", pour les ajouter tous, on utilise l'icne ">>" et dans l'autre sens pour les retirer, cliquez ensuite sur "Suivant >". Notez que la source de l'tat n'est pas ncessairement une table, on peut trs bien gnrer un tat partir d'une requte. Le fonctionnement reste le mme sauf qu'au lieu d'aller chercher des informations dans une table, Access ira les chercher dans la table rsultant de la requte.

Page 5 sur 21

Cours ACCESS

Les ETATS

Ici, on va indiquer comment se fait le regroupement. A quoi sert le regroupement ? Par exemple, ici, on veut crer un tat qui va afficher tous nos clients, on a choisit comme regroupement le champ "Ville", ce qui signifie que dans l'tat qui va tre gnr, Access va afficher d'abord le nom de la ville, puis tous les clients habitant cette ville, puis la ville suivante et les clients et ainsi de suite. On peut choisir plusieurs niveaux de regroupement, on aurait pu ajouter un niveau supplmentaire avec par exemple le nom, dans ce cas, Access affichera d'abord la ville, puis le nom, puis tous les clients portant ce nom dans cette ville, puis le nom suivant, puis la ville suivante, etc :

On va se contenter de faire un regroupement par Ville, un regroupement pas nom n'a pas, en soi, tellement de sens.

Page 6 sur 21

Cours ACCESS

Les ETATS

On clique sur Suivant :

On va dterminer ici si on dsire que les lignes de l'tat soient tries et comment elles vont l'tre : On peut trier chaque ligne de dtail (la ligne de dtail est la ligne qui sera affiche pour chaque enregistrement) selon quatre critres, ces quatres critres sont des champs. On va choisir sur quels champs vont se faire ces tris, les lignes seront ainsi d'abord tries par nom, puis par prnom, etc. Notez que l'on peut trier soit par ordre alphabtique normal (par dfaut) ou l'envers (de Z A) en cliquant sur l'icne (AZ) plac droite du champ. On clique ensuite sur "Suivant >"

On choisit ici le modle de prsentation de l'tat.

Page 7 sur 21

Cours ACCESS

Les ETATS

Et enfin le style de l'tat :

On nomme l'tat, et Access va le gnrer automatiquement :

Comme vous le constatez, les clients, classs par nom, prnom et adresse, sont regroups par Ville.

Page 8 sur 21

Cours ACCESS

Les ETATS

4.

Cration d'un tat avec plusieurs tables


Jusqu' prsent, nos tats n'affichaient que le contenu d'une table, nous allons crer un tat qui va afficher la liste des clients, avec, pour chaque client, la liste des commandes qu'il a pass. Attention, pour que ceci fonctionne, vous devez avoir cre correctement les relations entre les tables, sinon, Access risque de se perdre Comme avant, on cre un tat grce l'assistant :

La diffrence est qu'ici, on va chercher des donnes appartenant deux tables : Nclient, Nom et Ville proviennent de la table "Clients", N Commande, Commande rgle et Vendeur proviennent de la table "Commandes".

Page 9 sur 21

Cours ACCESS

Les ETATS

Et l, on voit que si on a bien fait les relations entre les tables, Access est intelligent, il a vu qu' un client peut correspondre plusieurs commandes, il nous propose donc de gnrer un tat qui va soit afficher tous les clients, avec, pour chaque client les commandes correspondantes, ou toutes les commandes, avec, pour chaque commande, le client qui l'a pass. Ce qui nous intresse n'est pas d'avoir la liste des commandes, car un client peut avoir pass plusieurs commandes, on retrouvera donc son nom plusieurs fois dans l'tat, on va donc regrouper par client.

On peut ajouter ici un nouveau niveau de regroupement, je veux par exemple, pour chaque client la liste des commandes, mais en plus, je veux avoir cette liste groupe par vendeur.

Ici, on va indiquer comment va se faire le tri, on va trier sur le Date (pourquoi pas), on aura donc un tat qui va afficher pour chaque client, les commandes qu'il a pass, tries par date et regroupes par vendeur.

Page 10 sur 21

Cours ACCESS

Les ETATS

On choisit ensuite la prsentation et on donne un nom l'tat et Access gnre :

Comme on peut le constater, on a ici le client, suivi de la liste de ses commandes, regroupes par Vendeur.

5.

Modifier la structure d'un tat


A prsent, nous allons modifier l'tat, nous allons ajouter, pour chaque client, une ligne qui va indiquer combien il a pass de commandes : On clique sur l'tat que l'on vient de crer et sur le bouton "Modifier" dans la fentre principale d'Access :

Page 11 sur 21

Cours ACCESS

Les ETATS

Comme on peut le constater, il y a plusieurs parties dans un tat : ?? L'en-tete de l'tat : c'est ce qui va tre imprim au dbut de l'tat, ce ne sera imprim qu'une seule fois. ?? L'en-tete de page : c'est ce qui sera imprim au dbut de chaque page (un titre par exemple). ?? L'en-tete de groupe : c'est ce qui va tre imprim au dbut de chaque groupe, ici l'tat est group par client, en en-tte du groupe client, on va donc imprimer les informations sur le client, il y a un sousgroupe dans le groupe client, c'est le groupe "Vendeur", on va donc imprimer dans l'en-tete de ce sous groupe les informations sur les vendeurs. ?? Le dtail : c'est ici que vont tre imprimes chaque ligne de l'tat, en l'occurrence ici les commandes ?? Le pied de page : c'est ce qui sera imprim en bas de chaque page (souvent la date et la numrotation des pages) ?? Le pied d'tat : c'est ce qui sera imprim une seule fois la fin de l'tat.

A chaque en-tte peut correspondre un pied, ici les pieds pour les groupes Clients et Vendeur ne sont pas affichs, mais si ils l'taient, la fin de chaque groupement, le contenu du pied de groupe s'imprimerait, par exemple, aprs chaque client, avant d'imprimer l'en-tete pour le client suivant, Access imprimerait le pied pour le client, idem pour le groupe vendeur, avant d'imprimer l'en-tete du prochain vendeur, Access imprimerait le pied du groupe vendeur. L'impression se fait ainsi : En tte de l'tat En tte de page En tte de groupe (client 1) En tte de groupe (Vendeur 1) Dtail (commandes) Pied de groupe (Fin du vendeur 1) En tte de groupe (Vendeur 2) Dtail (commandes) Pied de groupe (Fin du vendeur 2) Pied de groupe (Fin du Client 1) En tte de groupe (client 2) Pied de groupe (Fin du Client 2) Pied de Page Pied d'tat

Page 12 sur 21

Cours ACCESS

Les ETATS

On va afficher le nombre de commandes passes dans le pied du groupe client, ce qui est logique : la fin d'un client, on affiche le nombre de commandes qu'il a pass : Le pied du groupe client n'existe pas, il va falloir l'afficher, pour cela on clique sur l'icne :

Access affiche alors :

Qu'avons-nous dans cette fentre ? En haut, la liste des champs sur lesquelles sont groupes ou tries les informations dans l'tat, lorsque les informations sont groupes sur un champ, le nom de ce champ est prcd d'un icne (ici l'tat est groups sur les champs Nclient et Vendeur), lorsque le champ est uniquement utilis pour trier l'tat, il n'est prcd d'aucun icne (le champ Date de Commande sert uniquement au tri, il n'a pas d'icne). On peut, dans cette fenetre, ajouter un nouveau critre de tri ou un nouveau groupe. Dans la partie infrieure se trouvent les proprits de chaque champ. Pour le champ Nclient, on peut voir que, entres autres, la proprit "Pied de groupe" est "Non", ce qui signifie qu'il n'y aura pas de pied de groupe pour ce groupe l, nous voulons qu'il y en ai un pour que nous puissions imprimer dans ce pied le nombre de commandes passes pour ce client. Nous choisissons "Oui".

Page 13 sur 21

Cours ACCESS

Les ETATS

On peut constater que le pied de groupe "Nclient" est apparu. Dans ce pied, nous allons ajouter les informations que nous dsirons voir apparatre. Pour cela, nous procdons comme avec les formulaires, nous allons utiliser un contrle "Zone de Texte" qui va nous permettre d'afficher le rsultat d'un calcul (le calcul tant ici le nombre de commandes passes).

Nous avons notre contrle qui, pour l'instant n'est li rien (il est indpendant). Nous allons indiquer Access que ce qui doit tre affich dans ce contrle est le nombre de commandes passes pour ce client :

Pour cela nous utilisons la fonction "Compte" que nous avions vu dans les formulaires, cette fonction compte le nombre de fois que le champ pass en paramtre va tre affich. On obtient donc dans le pied de groupe :

Page 14 sur 21

Cours ACCESS

Les ETATS

Lorsqu'on demande visualiser l'tat, on obtient :

Vous pouvez voir, qu'en dessous du dtail de chaque client, se trouve le nombre de commandes qu'il a pass.

Page 15 sur 21

Cours ACCESS

Les ETATS

6.

Insertion d'un sous-tat


Comme pour les formulaires, on peut insrer dans un tat un sous tat. Les donnes du sous tat seront imprimes en fonction de celles contenues dans l'tat. Nous allons imprimer un bon de commande, le bon de commande va contenir toutes les informations concernant cette commande : les coordonnes du client, et le dtail de chaque ligne de la commande. Pour varier les plaisirs, nous allons baser cet tat non plus sur une table comme prcdemment mais sur une requte, cette requte va afficher, pour un numro de commande donn, les informations la concernant : Date, rgle, n du vendeur, nom et coordonnes du client :

Je n'entre pas dans le dtail de la requte, (vous tes cens savoir comment on fait), sachez seulement que pour pouvoir saisir le numro de commande, on place comme critre au champ "N Commande" le critre "=[Entrez le numro de la commande]. Une fois la requte cre, on va crer un tat en le basant sur cette requte :

Page 16 sur 21

Cours ACCESS

Les ETATS

On choisit tous les champs de la requte :

Cette fois -ci, on veut que l'tat affiche les renseignements par commande (on veut imprimer un bon de commande) et non pas par client :

Page 17 sur 21

Cours ACCESS

Les ETATS

On indique dans l'cran suivant qu'on ne veut pas de niveau de regroupement supplmentaire et on choisit le format d'impression :

Choisissez la dcoration et donnez un nom votre tat, Access gnre l'tat et affiche :

Pourquoi ? simplement parce que comme l'tat est bas sur une requte, Access appelle d'abord la requte pour construire l'tat, et cette boite de dialogue est gnre par la requete.

Page 18 sur 21

Cours ACCESS

Les ETATS

Il gnre alors un tat tout simple :

Nous allons, comme avec le sous-formulaire, ajouter un sous tat l'tat actuel, ce sous tat va afficher, pour la commande le dtail de chaque ligne de la commande : Pour cela, on passe en mode modification de l'tat et on insre dans la partie "Dtail" de l'tat un contrle sous-tat : Access nous demande partir de quoi va tre gnr notre sous-tat, il va l'tre partir de tables.

Page 19 sur 21

Cours ACCESS

Les ETATS

Access nous demande ensuite quels vont tre les champs qui vont tre affichs dans le sous-tat.

On retrouve ici ce qu'on avait fait dans les formulaires, on indique ici les champs et les tables d'o proviennent les informations : num_prod, quantite et num_cde viennent de la table "lignes_commande" et libelle et prix unitaire viennent de la table "Produits" Notez que le champ num_prod (numro du produit) vient de la table "Lignes Commande" et non pas de la table "Produits". Pourquoi ? Parce qu'on veut la liste des produits commands (donc prsents dans la table Lignes Commandes"), si on avait choisi le numro de produit venant de la table "Produit", cela aurait voulu dire qu'on voulait la liste de tous les produits prsents dans la table "Produits". Il va falloir maintenant indiquer Access comment faire la relation entre l'tat et le sous-tat. De deux choses l'une, soit les relations sont bien faites et Access va savoir seul comment faire la relation, soit elles sont mal faites, ou Access ne voit pas comment faire et il va afficher la fentre suivante :

Page 20 sur 21

Cours ACCESS

Les ETATS

Ici, on va simplement indiquer Access quel est le champ qui va tre commun l'tat et au sous-tat, c'est partir de ce champ commun que le sous tat va pouvoir tre gnr. On veut afficher, pour chaque commande le dtail de chaque ligne de la commande, ce dtail se trouve dans la table "Lignes_commande", dans la table "Ligne_Commande" se trouve le champ "num_cde" qui indique quelle commande appartient cette ligne de commande. La "jointure" entre ces deux tables va donc se faire sur le numro de commande, d'un ct le champ "N commande" dans la table "Commande" avec le champ "num_cde" dans la table "Lignes_commande" de l'autre. D'ailleurs, on peut voir ds qu'on a choisi ces champs, qu'Access nous affiche en franais la nature de cette relation entre les tables.

Access gnre l'tat et affiche :

Vous pouvez constater que maintenant, pour la commande, s'affiche, en plus le sous tat contenant le dtail de chaque commande.

Page 21 sur 21