Cours Microsoft Access 2010 gratuit


Télécharger Cours Microsoft Access 2010 gratuit
3.53.5 étoiles sur 5 a partir de 1 votes.
Votez ce document:

Télécharger aussi :


 
 

Le formulaire va nous permettre d’affcher et de modifer le contenu d’une table de façon bien plus agréable que le mode «  feuille de données » qui ne permet qu’un affchage en lignes et colonnes. 

De plus, le mode «      feuille de données » ne permet l’affchage et la modifcation d’informations ne provenant que d’une seule table, le formulaire va nous permettre de manipuler au même endroit des informations provenant de plusieurs tables simultanément :

par exemple, dans notre exemple de base de données magasin, nous pourrons avoir un formulaire qui affchera dans la même fenêtre toutes les informations concernant une commande : informations générales sur la commande (provenant de la table «    commande », informations sur le client ayant passé cette commande (provenant de la table «          clients » et le détail de cette commande (provenant des tables «      lignes-commande » et « produits ») alors que précédemment, ces données étaient éclatées sur plusieurs feuilles de données.

Les informations saisies ou modifées dans le formulaire seront modifées dans les tables à partir desquelles le formulaire a été créé.

Nous allons créer le formulaire associé à la table «   clients ». Pour créer un formulaire, on se place dans la fenêtre principale d’Access et on clique sur l’onglet «          formulaire », puis sur le bouton « nouveau… »

 

Il existe plusieurs méthodes pour générer un formulaire, nous nous intéresserons seulement aux deux premières méthodes :

??Mode création : on va tout faire seul « à la main » sans aucune aide d’Access

??Assistant Formulaire          : Access va nous guider pas à pas dans la réalisation de notre formulaire

??Formulaires Instantanés    : Ces trois méthodes vont générer rapidement un formulaire à partir d’une table sans nous poser de questions, son aspect sera rudimentaire et ne nous donnera pas de grandes possibilités de personnalisations.

Nous allons utiliser la méthode « Assistant Formulaire        ».

Dans la partie inférieure de la fenêtre, nous allons choisir la table à partir de laquelle le formulaire va être généré : les informations provenant de cette table seront affchées dans le formulaire, les modifcations ou ajouts que nous ferons dans le formulaire seront répercutées dans cette table :

 

Nous choisissons ici la table « clients » et on clique sur « OK »

 

Nous allons choisir ici quels sont les champs de la table que nous voulons voir dans le formulaire, si nous voulons être en mesure de modifer tous les champs de chaque enregistrement de la table, il faudra tous les choisir, si, par exemple, notre formulaire ne doit servir qu’a affcher certaines informations, on choisira uniquement les champs pertinents.

Attention: Dans un formulaire, on va pouvoir, comme dans la feuille de données, ajouter des enregistrements dans la table, les champs non présents dans le formulaire ne seront pas initialisés (ils resteront vides) lors de l’ajout. (Le seul moyen alors pour remplir ces champs sera d’aller dans la feuille de données).

Pour choisir les champs à ajouter ou à enlever dans le formulaire, on va utiliser les boutons :

??> : Ajouter le champ dans le formulaire

??>> : Ajouter tous les champs dans le formulaire

??< : Supprimer un champ du formulaire

??<< : Supprimer tous les champs du formulaire

Nous allons ajouter tous les champs du formulaire, cliquez ensuite sur « suivant »

 

On choisit ici la façon d’affcher les champs choisis dans le formulaire, il y a quatre façons d’affcher les champs :

??

Colonne simple             : Le formulaire va affcher les champs sous la forme : « nom du champ :

contenu du champ ». Le formulaire va affcher les champs d’un enregistrement à la fois.

??

Tabulaire : Le formulaire va affcher les champs choisis sous la forme d’un tableau : en haut du formulaire vont être affchés les noms des champs, et, en dessous sous forme de tableau, le contenu, avec un enregistrement par ligne. Cette façon d’affcher les données ressemble à la feuille de données.

??

Feuille de données        : C’est la même chose que la feuille de données utilisées pour saisir des informations dans une table, la seule différence est que ne sont affchés ici que les champs sélectionnés dans l’étape précédente.

??

Justifié : Va affcher les champs choisis les un à la suite des autres, ce n’est pas très beau (enfn c’est une question de goût).

Nous utiliserons le plus souvent (voire tout le temps) le mode « Colonne simple » ou le mode « Tabulaire ». Nous choisissons ici le mode «           Colonne Simple », puis on clique sur « Suivant »

 

On choisit ici le "décor" que l'on va donner au formulaire, il existe une dizaine de décors prédéfnis, bien sur, on pourra, par la suite, modifer un décor choisi ici. Choisissez celui qui vous plaît le plus.

 

Enfn, on va nommer son formulaire, c'est sous ce nom qu'il apparaîtra dans l'onglet

"Formulaires" de la fenêtre principale d'Access, puis cliquez sur "Terminer", le formulaire est créé.

 

Access nous propose alors de commencer tout de suite la saisie dans notre nouveau formulaire.

Vous pouvez voir ici le formulaire tel qu'il est une fois créé : Il utilise les champs choisis dans la table sélectionnée, il affche les champs sous forme de "Colonne simple" (un couple nom du champ - contenu du champ par ligne) et utilise le décor choisi.

Les informations qui vont être saisies ou modifées dans ce formulaire le seront dans la table qui est associée à ce formulaire.

Pour se déplacer parmi les enregistrements dans le formulaire, on utilise les icônes féchés en bas du formulaire :

 

Les différents contrôles

Pour modifer l'aspect et le contenu du formulaire, on clique soit sur le bouton "Modifer" dans l'onglet "Formulaires" de la fenêtre principale d'Access, soit sur l'icône

 

On passe alors en mode modifcation :

 

Le formulaire est affché en mode modifcation (à gauche) et une boîte à outils s'affche (à droite), la boîte à outils peut apparaître sous forme de barre d'icône en dessous du menu de la fenêtre.

Le formulaire est constitué de plusieurs parties : L'en-tête, le détail et le pied. Dans le cas d'un formulaire de type "Colonnes Simples" (comme c'est le cas ici), l'en-tête et le pied n'ont aucune importance, ils sont utiles lorsque le formulaire est affché sous forme de tableau (type Tabulaire ou Feuille de Données), dans ce cas, l'en-tête va contenir le titre des colonnes, le détail va défnir la façon dont vont être affchées les informations dans chaque ligne du tableau (nous verrons ça plus tard) et le pied pourra contenir des informations supplémentaires, comme par exemple, après avoir affché un tableau de nombres, il pourra affcher la somme de ces nombres.

Tout ce qui se trouve sur le formulaire s'appelle un   contrôle : un texte affché sur le formulaire est un contrôle, un champ d'un enregistrement est un contrôle, une image placée sur le formulaire est un contrôle : tout ce qui est affché dans le formulaire est un contrôle. La boîte à outils à gauche affche tous les contrôles possibles que l'on peut placer sur un formulaire. Ils sont assez nombreux et permettent d'affcher tous les types d'informations possibles (même du son ou de la vidéo !).

Ces contrôles peuvent être divisés en trois catégories :

??

Les contrôles indépendants      : Ils n'ont aucune relation avec la table qui est liée au formulaire (n'oubliez pas que chaque formulaire manipule des informations provenant d'une table de la base). Par exemple une image placée sur le formulaire n'a pas de relation avec la table, c'est un contrôle indépendant, du texte affché sur le formulaire (on pourrait par exemple placer un titre "Formulaire Clients" en haut du formulaire), ce texte ne provient pas de la table, il n'a aucun rapport avec elle, c'est donc un contrôle indépendant.

??

Les contrôles dépendants            : Les contrôles dépendants sont liés à la table liée au formulaire, ils vont affcher le contenu d'un champ, toute modifcation dans ce contrôle ira modifer le champ auquel il est lié dans la table :

 

Dans notre exemple, le contrôle à droite est dépendant du champ "nom" de la table "Clients", il affchera, pour l'enregistrement courant, le contenu du champ "nom". Toute modifcation dans ce contrôle ira modifer le contenu du champ "nom" de la table "Client" pour l'enregistrement en cours.

Notez que le contrôle à gauche est un contrôle indépendant, il se contente d'affcher le texte "nom", tandis que celui de droite est dépendant et va chercher son contenu dans le champ de la table dont le nom est affché (champ "nom"), nous verrons plus bas comment rendre un contrôle dépendant.

?? Les contrôles calculés             : Les contrôles calculés ne vont pas chercher les informations qu'ils vont affcher dans un champ de la table lié au formulaire mais à partir du contenu d'autres contrôle du formulaire, par exemple un contrôle dans le formulaire lié à la table "Produit" pourra affcher le prix TTC à partir des contrôles affchant les prix hors taxe et la TVA.

Voici la liste des contrôles que nous pourrons utiliser, les contrôles non documentés servent, de façon générale, à insérer dans un formulaire des "objets" provenant d'autres applications Windows, comme par exemple un fchier sonore Wav, une vidéo AVI, un fchier au format Word, une page HTML, etc.

 

Pour tous les contrôles placés sur le formulaire, en cliquant dessus avec le bouton droit, on obtient le menu suivant :

Ce menu permet de modifer l'aspect (couleur, choix de la police, effets, etc.) ou le comportement (format d'affchage, masque de saisie, etc.) du contrôle, l'option "Propriétés" du menu permet l'affchage et la modifcation de toutes les caractéristiques du contrôle. Les propriétés varient selon le type de contrôle.

Il va être utilisé pour affcher du texte "statique", c'est à dire qui ne variera pas d'un enregistrement à l'autre, c'est donc un contrôle indépendant, qui servira typiquement à affcher par exemple le titre du formulaire, ou le nom d'un champ dont le contenu sera affché à côté dans un contrôle dépendant. Dans notre formulaire, tous les noms des champs affchés à gauche sont des contrôles "Intitulé", ce sont des textes statiques ne dépendant de rien, on peut modifer ce qui est affché sans affecter quoi que ce soit dans la table associée au formulaire.

Ce contrôle est l'un des contrôles les plus utilisés dans l        es formulaires, on va, dans ce contrôle, pouvoir saisir des données. Typiquement, ce contrôle est soit un contrôle dépendant, soit un contrôle calculé. 

Pourquoi ? On peut, dans ce contrôle, saisir des informations, il serait alors judicieux que les informations saisies puissent servir à quelque chose, si le contrôle n'est lié à aucun champ de la table associée au formulaire, les informations que l'on va taper vont se perdre dans la nature dès qu'on sera passé sur l'enregistrement suivant. En revanche, si       le contrôle est lié à un champ de la table, les informations entrées dans ce contrôle seront placées dans le champ lié au contrôle. 

 

Tout ce qui sera entré dans un contrôle dépendant affectera le contenu du champ auquel il est lié. Bien sur, rien n’interdit de lier un même champ sur plusieurs contrôles dans le même formulaire (ce qui n’a pas, à priori, d’intérêt).

Dans notre formulaire, tous les contrôles dans lesquels on va saisir des informations sur les clients sont des contrôles dépendants liés à des champs de la table. Le nom du champ auquel est lié le contrôle est d’ailleurs écrit dans ce contrôle.

Pour relier un contrôle à un champ, procédez ainsi :

1.   Cliquez dans la boîte à outils sur le contrôle zone de texte

2.   Placez le contrôle sur le formulaire et dimensionnez-le

3.   Access crée en fait DEUX contrôles : il suppose, à juste titre, que l’on va lier ce contrôle avec un champ, il crée donc un contrôle «      Intitulé » qu’on à vu avant qui contient le texte « Texte xx » (où xx est un nombre quelconque) et notre fameux contrôle « Zone de Texte » qui contient la mention « indépendant ».

4.   On va supposer ici qu ‘on veut lier ce contrôle au champ « Nom » de notre table Clients (même si il se trouve déjà sur le formulaire, c’est juste un exemple)

5.   A la place de «           Texte xx », on va taper  «      Nom : »  (histoire de savoir ce qu’il va falloir saisir dans le contrôle d’à côté)

6.   Vous avez pu noter la mention «       indépendant », ce qui signife que, pour l’instant, le contrôle « Zone de Texte » créé n’est lié à rien, on peut taper du texte dedans mais le texte ne sera sauvé nulle part. Pour dire à Access qu’on veut sauver ce texte dans le champ « Nom » de la table Clients, on clique avec le bouton droit sur le contrôle et on clique sur « Propriétés » :

Ici se trouvent toutes les propriétés qui vont défnir l’aspect et le comportement de notre contrôle, il y en a beaucoup et je ne vais pas les détailler. Celle qui nous intéresse particulièrement et la propriété « Source Contrôle » de l’onglet « Données ». C’est ici qu ‘on indique à Access d’où viennent les informations qui vont être affchées dans le contrôle.

Il y a une fèche qui descend à droite, si on clique dessus, tous les champs de la (ou des) table(s) liés au formulaire vont s’affcher, on choisi dedans le champ « Nom », et on ferme la fenêtre de propriétés.

7.   Le contrôle n’est plus indépendant, à la place de la mention «         Indépendant », il est affché « Nom », c’est-à-dire le nom du champ avec lequel il va être lié. A partir de maintenant, lors de l’affchage d’un enregistrement dans le formulaire, le nom du client sera affché dans ce contrôle, et toute modifcation de son contenu sera répercutée dans la table.

Le contrôle « Groupe d’option » va servir a faire un choix l  imité entre plusieurs options et d’affecter l’option choisie à un champ d’une table. Par exemple, supposons maintenant que nous ajoutions un champ « vendeur » à la table « Commandes » pour savoir qui a effectué une vente. Nous allons supposer que notre magasin à trois vendeurs nommés Dupond (vendeur 1), Durant (vendeur 2) et Martin (vendeur 3). Nous allons d’abord ajouter le champ

« num_vendeur » à la table «  Commandes », puis sur le formulaire « Commandes » liée à cette table, nous ajoutons un contrôle « Groupe d’options »

Nous entrons ici les différents noms des vendeurs et nous cliquons sur « Suivant »

Nous pouvons choisir ici le vendeur qui sera toujours proposé par défaut, nous pouvons également ne choisir aucun vendeur par défaut.

Nous avons vu que chaque vendeur à un numéro, c’est ce numéro, et nom le nom du vendeur qui va être sauvé dans le champ « num_vendeur » de la table « Commande », on indique ici, pour chaque vendeur, son numéro.

On indique enfn à Access en choisissant dans le menu quel est le champ de la table qui va contenir le numéro correspondant au vendeur qu’on a choisi.

On choisit l’aspect de notre groupe d’options

 

 Vous pouvez voir en bas le groupe d’options avec les trois vendeurs proposés, en en  choisissant un, on sauve dans le champ lié à ce groupe (num_vendeur), le numéro associé au vendeur choisi.

Ces deux types de contrôles permettent de tracer des traits ou des rectangles sur le formulaire pour encadrer ou souligner.

Vous vous souvenez de l’assistant « Liste de choix » dans les tables qui permettait, au lieu de saisir une valeur, de pouvoir choisir dans une liste. Ce type de menu existe également dans les formulaires, on va pouvoir, grâce à ces deux types de contrôles, pouvoir, par exemple dans le formulaire « Commande », choisir parmi la liste des clients au lieu de saisir son numéro.

Pour cela, on procède ainsi : 

1.   Ouvrir le formulaire « Commande » en modifcation

2.   Choisir le formulaire « Zone de Liste » dans la boîte à outils

3.   Le placer sur le formulaire

Il y a trois façon de générer cette zone de liste, comme pour la feuille de données, nous voulons affcher une liste des clients existants dans la table client, pour cela, on sélectionne la 1 ère option « Je veux que la zone de liste recherche les valeurs dans une table » (en l’occurrence, la table clients), et on clique sur suivant

4.

Access nous affche les tables existantes : On choisi la table « Clients »

5.

On choisit ici les champs qui seront affchés dans la zone de liste, nous pouvons juger que seuls les nom et ville sont nécessaires

6.

Access nous affche à quoi va ressembler notre zone de liste.

Notez que l’option « Colonne clé cachée » est cochée, qu’est-ce que cela signife ?

Nous sommes d’accord que le but de l’opération est de choisir parmi une liste un client et d’affecter son numéro au champ «          n° client » de la table «          Commande » afn d’éviter d’avoir à taper ce numéro. Or, nous avons choisi uniquement les champs Nom & Ville de la table « Client », et pas le numéro. Access a remarqué que le numéro du client est la clef de la table «      Client », il en déduit que c’est donc le seul moyen d’identifer de façon unique un client, il va donc ajouter une colonne à notre liste, cette colonne sera cachée, et c’est le contenu de cette colonne cachée qui sera affectée au champ «     n° client » de la table « Commande ».

7.

On va indiquer à Access dans quel champ de la table liée au formulaire on veut stocker cette valeur (ici n° client)

8.

On nomme la zone de liste, et c’est terminé

Vous voyez qu’au lieu de saisir un numéro, nous avons une liste dans laquelle nous pouvons choisir un client, le numéro de ce client, présent dans la colonne cachée de la zone de liste, sera affecté au champ choisi plus haut (n° client). Magique non ?

Le contrôle « Zone de liste modifable » agit exactement de la même façon, il est différent parce que c’est un menu déroulant (il faut cliquer sur une petite fèche pour le faire apparaître) au lieu d’être fxe. Essayez le…

Ce contrôle va permettre d’exécuter simplement en cliquant dessus n’importe quelle action d’Access. Toutes les actions possibles d’Access, normalement accessibles par les menus déroulant ou par la barre d’icônes peuvent être reproduites par l’intermédiaire de ce contrôle. Pour comprendre son fonctionnement, nous allons créer un nouveau formulaire vide dans lequel nous allons simplement poser un contrôle « Bouton de commande ».

Dès que le contrôle est posé sur le formulaire, l’assistant suivant apparaît :

Il y a deux colonnes dans cet assistant :

Le menu Catégories affche les principales fonctions d’Access :

??Déplacement entre enregistrements  : Pour se positionner sur un enregistrement précis de la table.

??Opération sur enregistrement             : Ajouter, Supprimer, Copier, Imprimer un enregistrement

??Opération sur formulaire         : Ouvrir un formulaire, le fermer, appliquer un fltre dessus, l’imprimer

        ??Opérations sur Etat    : Imprimer, Sauver

??Applications :  Exécuter une autre application comme Word ou Excel

??Divers : Exécuter une macro, Imprimer une table complète, …

Comme vous pouvez le voir, toutes les actions possibles d’Access sont réunies ici, il sufft d’en choisir une et le fait de cliquer sur le contrôle exécutera cette action.

Nous allons prendre pour exemple l’ouverture du formulaire « Clients ».

Nous choisissons donc la Catégorie « Opération sur Formulaire » puis l’action « Ouvrir un formulaire »

Access nous demande alors quel formulaire nous voulons ouvrir.

(ne vous préoccupez pas des noms des formulaires affchés ici, ils ne correspondent pas à nos exemples)

On choisit « Clients »

Access nous propose deux choix, nous verrons le premier plus tard, nous lui demandons d’affcher tous les enregistrements dans le formulaire

On peut ici choisir ce qui va être affché dans le contrôle, par défaut Access propose un icône, on peut affcher à la place un texte ou choisir un autre icône.

On nomme le contrôle et c’est terminé.

Notre formulaire ressemble à ça

Quand on cliquera sur le bouton de commande créé, le formulaire «            Clients » s’ouvrira et affchera tous les clients de la table « Clients ».

Nous pouvons améliorer ce formulaire grâce à quelques contrôles et en faire quelque chose de plus intéressant : Nous allons affcher tous les clients dans un contrôle « Zone de Liste », et ajouter sur le formulaire un bouton de commande comme celui que nous venons de créer avec cette fois, un petit plus : le formulaire qui va s’affcher quand on cliquera dessus n’affchera plus la totalité des clients mais seulement celui que nous aurons choisi dans la zone de liste.

Pour cela, on crée un nouveau formulaire vide (        directement en mode création) et, comme plus haut, on crée une zone de liste dedans :

Notez cette fois-ci que, comme le formulaire a été crée à partir d’aucune table, Access ne demande pas à quel champ de la table nous voulons rattacher ce contrôle. Il est donc indépendant : il va se contenter d’affcher le numéro, le nom et le prénom des clients : le fait d’en choisir un dans cette liste ne modifera aucune table.

Nous posons ensuite un contrôle « Bouton de Commande » sur le formulaire. Nous répétons les étapes précédentes, mais cette fois nous nous arrêtons à la question suivante :

Nous avions, précédemment, affché tous les enregistrements de la table «   Clients » dans le formulaire « Clients ». Nous voulons maintenant, affcher dans ce formulaire que le seul client correspondant à celui que nous avons choisi dans la liste.

La fenêtre suivante s’affche :

A gauche nous avons les contrôles se trouvant sur notre formulaire : il n’y en a qu’un, il s’agit d’une zone de liste modifable qui s’appelle «            Modifable3 » (le nom choisi par Access lorsqu’on a créé le contrôle. Il peut être différent).

A droite se trouvent tous les champs de la table associée au formulaire que nous voulons ouvrir.

Suivez bien le mouvement :

Lorsque nous avons crée notre contrôle « Zone de Liste » contenant la liste des clients, nous avons choisi de faire apparaître dans cette liste le numéro du client, son nom et son prénom. Access ayant noté que le numéro est la clef de la table « Clients », il ne l’affchera pas (voir page 19). Il ne l’affchera pas mais il sera toujours présent dans la liste mais il sera caché.

Bon, quand on choisit une des lignes du menu de la zone de liste, Access fait l’opération suivante : il « regarde «  sur quelle ligne on a cliqué, il trouve une ligne « numéro,  de client + nom + prénom », le numéro étant caché. Il ne s’occupe alors que de la première colonne (en l’occurrence la colonne cachée) : pour Access maintenant, le fait d   ‘avoir cliqué sur cette ligne correspond au fait d’avoir cliqué sur le numéro seulement. Si vous n’aviez pas mis la colonne numéro de client, il aurait pris la première colonne (nom) et le fait de cliquer sur toute la ligne aurait correspondu au fait de cliquer sur le nom. OK ? Si vous n’aviez pas compris la page 19, j’espère que maintenant c’est plus clair.

Bien, maintenant, il faut dire à Access comment il va faire le lien entre ce qu’on a cliqué dans la liste et la table « Client », on choisit donc à gauche notre contrôle (on a pas trop le choix) et à droite le champ « nclient » (numéro de client) et on clique sur « « .

Pourquoi ? comme on vient de le voir, le fait de cliquer sur un élément de la liste, correspond au fait de cliquer sur le numéro, on va lui dire avec cette opération : « Affche dans le formulaire les enregistrements dont le champ « nclient » est égal à ce qu’on vient de cliquer dans la liste ». 

On choisit ensuite l’icône et on doit se retrouver avec quelque chose comme ça :

Quand on va ouvrir le formulaire, on va voir ceci :

La liste des clients s’affche (le nom & le prénom, le numéro étant caché)

Une fois qu’on a choisi un, on clique sur le bouton de commande et comme par magie, le formulaire client s’ouvre avec seulement les informations concernant le client choisi dans la liste.

Ceci n’est qu’un petit exemple de ce que l’on peut réaliser avec le contrôle «          bouton de commande », vous pouvez essayer d’autres commandes.

Grâce à ce contrôle, nous allons pouvoir affcher des formulaires imbriqués dans d’autres, par exemple pour affcher une liste d’enregistrement correspondant à un seul enregistrement : pour une commande donnée, on pourra, dans le même formulaire, affcher toutes les lignes de cette commande.

Le but de la manœuvre va être de réaliser un formulaire complexe que l’on va nommer « facture ». Il contiendra toutes les informations relatives à une commande : en en-tête le numéro de la commande, sa date, les informations sur le client, et en dessous le détail de cette commande, avec en bas le montant total de la commande.

Pour cela, on crée le formulaire « facture ». Ce formulaire va être l’en-tête de notre formulaire fnal : il va contenir les informations sur la commande et sur le client qui l’a passé. On va donc aller chercher des informations dans deux tables : « Clients » et « Commandes ».

Comme on l’a vu, le formulaire va être généré à partir de deux tables, on ne choisit donc rien dans le menu « Choisissez la table ».

C’est ici qu’on va choisir les tables : En haut à gauche se trouvent les tables de la base, en dessous les champs de la table choisie plus haut et à gauche les champs que nous allons utiliser dans notre formulaire.

Pour notre en-tête, nous avons besoin des informations suivantes : n° de la commande, n° du client qui a passé cette commande, la date de la commande, ces informations provenant de la table « Commande » et le nom, le prénom et la ville du client qui a passé cette commande, ces informations provenant de la table « Clients ».

A partir de maintenant, nous supposerons que les relations ont été bien réalisées entre les tables, c’est une condition nécessaire au bon déroulement de la suite des opérations. Si les relations ne sont pas faites ou mal faites, Access va « tenter » de relier comme il peut les tables entre elles, et c’est la source de problèmes…

Les relations étant correctement faites, Access, dans une crise d’intelligence remarque qu’a partir des champs choisis précédemment, on peut faire deux choses : soit affcher les données par clients, c’est à dire que, avec les champs choisis, on peut affcher un client et en dessous affcher toutes les commandes qu’il a passé. Soit affcher les données par commande, c’est à dire que pour une commande choisie, on va affcher les informations concernant le client qui a fait cette commande. A droite s’affche la façon dont les données seront affchées en fonction du mode qu’on aura choisi.

J’espère que votre esprit affûté aura remarqué que la deuxième proposition est la bonne, nous la choisissons donc.

Les étapes suivantes sont classiques : choix de la disposition, de la décoration et du nom, on arrive à la fn à quelque chose comme ça :

Bon, étape 1 terminée. Nous allons maintenant créer un nouveau formulaire, ce formulaire va être une sorte de «     super formulaire ligne-commandes ». Dans notre formulaire ligne commande, nous avons seulement le numéro de la commande, le numéro du produit et la quantité. 

Nous allons créer un formulaire « super ligne-commande » qui va contenir sur chaque ligne : le numéro de la commande, le numéro du produit, sa quantité (tout cela provenant de la table « lignes-commande »), mais en plus le nom du produit, son prix unitaire, son taux de TVA (tout cela provenant de la table « produits ») et pour corser l ‘affaire, nous ajouterons le calcul du montant TTC de la ligne, et hop !

Comme pour notre précédent formulaire, nous allons utiliser deux tables :

Nous choisissons les champs numéro de commande, numéro de produit et quantité de la table « ligne-commande » et les champs libellé, prix unitaire et tva de la table « Produits ».

Une fois de plus, Access fait preuve d           ‘intelligence ! Il se rend compte qu’avec les champs que nous avons choisi, nous pouvons affcher les données sous deux formes : soit par produit, dans ce cas il va affcher toutes les lignes de commandes où ce produit est présent, pourquoi pas ? mais ça ne nous intéresse pas spécialement, soit par ligne de commande, et il va dans ce cas, affcher les informations sur le produit présent dans cette ligne de commande. Voilà qui est beaucoup plus intéressant.

Cette fois-ci, nous allons affcher le formulaire sous forme « Tabulaire ». Comme ce formulaire va contenir la liste des lignes d’une commande, c’est la meilleure façon d’affcher une liste.

A la fn, on obtient un formulaire qui a cette forme :

Dans l’en-tête se trouvent les titres des colonnes, et dans le détail, les lignes du formulaire. Une fois ouvert, il aura cet aspect :

Nous sommes bien d’accord, ce formulaire affche le détail de toutes les commandes. Comme on peut le voir dans la 1ère colonne, il concerne plusieurs commandes.

Bien, maintenant, nous allons ajouter un contrôle dans ce formulaire pour calculer le montant TTC de chaque ligne :

 

Nous avons a   jouté deux contrôles : un contrôle «   Intitulé » pour affcher l’en-tête de le colonne, et un contrôle « Zone de Texte » dans lequel on va calculer le montant TTC. Pour calculer le montant TTC, on affche les propriétés du contrôle et dans la propriété « Source » de l’onglet « Données », on tape la formule de calcul :

La formule de calcul est :

( [prix unitaire] + ( [prix unitaire] * [tva] / 100 ) ) * [quantite]

Si on affche maintenant le formulaire, on obtient :

 

Ca marche !

Plus fort, maintenant, nous allons affcher le montant total commandé. Nous sommes toujours d'accord, le montant total va être le montant total pour toutes les commandes, notre formulaire pour l’instant ne fait pas de distinction entre les commandes.

 

Vous avez pu remarquer que le formulaire a en plus de l’en-tête et du détail, une partie « Pied de formulaire ». Cette partie ne sera affchée que en bas du formulaire, une fois toutes les lignes affchées. Comme précédemment, nous mettons dans cette partie du formulaire un contrôle « Zone de Texte » dans lequel nous allons faire le calcul de la somme.

Que contient la formule ? La même que tout à l’heure, mais nous avons ajouté le mot-clef « somme » avant : Access va calculer la somme de toutes les lignes ici.

Et voilà le travail : en bas du formulaire apparaît la somme totale.

Arrivé ici, nous avons notre formulaire « facture » qui contient les informations générales sur la commande et le formulaire « super ligne commande » qui contient les détails de toutes les commandes. Il serait bien de pouvoir insérer ce formulaire dans le premier et de lui faire affcher seulement les lignes commandes correspondant à la commande choisie.

Pour cela, on v a rouvrir notre formulaire « facture » et poser dessus un contrôle «  SousFormulaire ». L’assistant suivant s’affche alors :

Access nous demande à partir de quoi il va affcher ce sous-formulaire ? d’une table ou d’un formulaire existant déjà ? Nous choisissons la deuxième solution et nous choisissons notre formulaire « super lignes commande ».

C’est ici que tout se fait. Il va falloir indiquer à Access quel est le rapport entre le formulaire et le sous formulaire qu’il contient. Si on se contentait d’insérer le sous formulaire tel quel dans le formulaire, il continuerait à affcher tout le temps la totalité des lignes commandes quelle que soit la commande affchée dans le formulaire principal.

Nous voulons qu’il affche dans le sous-formulaire les lignes commande correspondant à la commande affchée dans le formulaire principal.

Quel est le rapport entre les deux ? Comment faire une relation entre les deux ? Simplement : le formulaire contient le numéro de la commande en cours, le sous-formulaire contient pour chaque ligne de commande affchée le numéro de la commande concernée. Il va donc falloir dire à Access que les lignes affchées dans le sous formulaire vont être celles dont le numéro de commande est celui qui est affché dans le formulaire.

Pour cela, on indique dans la colonne de gauche quel est le champ qui contient le numéro de commande dans le formulaire principal et quel est le champ qui contient aussi un numéro de commande dans le sous-formulaire. 

 

  A la place du sous-formulaire, il y a un rectangle blanc. Ce qui implique que toute modifcation dans ce sous-formulaire ne pourra se faire ici, il faudra la faire directement dans le formulaire « super ligne commandes ». Dans Access 2000, on peut directement modifer le sous formulaire à partir d’ici, il n’y a plus de rectangle blanc mais directement le formulaire.

Maintenant, lorsque vous ouvrez le formulaire principal :

 

  Vous avez, pour une commande donnée en haut, son contenu exact et son montant. Vous noterez que le numéro de commande est répété pour chaque ligne, vous pouvez, comme il est inutile maintenant puisque déjà présent dans l’en-tête, le supprimer du formulaire.

Voilà pour les sous-formulaires. Il existe une méthode plus simple pour faire ce que nous venons de faire. Il sufft pour cela, d’abord de bien relier les tables entre elles, ensuite lorsqu’on crée le premier formulaire de mettre toutes les champs de toutes les tables concernées dans le même formulaire : n° de commande, n° de client, date venant de la table « Commande », nom, prénom, adresse venant de la table « Client », n° de commande, n° de produit, quantité venant de la table «         Lignes-commande » et  libellé, prix unitaire et tva venant de la table « Produits».

Access affche alors :

Et là, ô magie ! Access a deviné tout seul ce que nous voulions faire (grâce quand même aux relations), et nous propose de faire tout seul ce que nous avons fait avant. Vous remarquez que l’exemple qu’il nous propose à droite ressemble étrangement à ce que nous avons fait « à la main ».

Il nous propose le format d’affchage

Ici on nomme le formulaire, vous pouvez noter qu’il a crée tout seul le sous formulaire et qu’il en profte pour nous demander son nom.

  Et voilà le travail ! En cinq secondes, il a fait ce qui nous a pris beaucoup de temps ! Il nous faudra simplement ajouter ensuite dans le sous formulaire le calcul des montant TTC et le montant total.

Comme quoi, si les relations sont bien faites, Access fait les trois quart du boulot tout seul.

Ici se termine l’histoire des formulaires. Il reste d’autres contrôles comme les boutons bascule, les images, les objets OLE, etc… Nous ne les utiliserons pas souvent. 


607
x