Temps
nécessaire pour suivre cette leçon : Une bonne demie heure à
quarante minutes
Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données ProFormation.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici
Dans cette leçon, nous allons abandonner les requêtes, bien que nous n'avons pas du tout tout vu en ce qui les concerne, pour nous intéresser au 3ème grand objet d'Access : Les formulaires. Dans cette leçon, nous allons apprendre à créer des formulaires très rapidement avec l'assistant de création de formulaire qui est bien pratique. Nous verrons les fonctions basiques possibles à réaliser avec les formulaires. |
- Les tables servent à STOCKER les données
- les requêtes servent à EXTRAIRE les données,
et faire des calculs
- les formulaires vont servir à SAISIR les données
Oui, mais pas de manière vraiment conviviale...
Ce ne sont que des colonnes de type Excel... Et, dites-moi si je me trompe, mais si vous avez l'habitude d'utiliser de grandes feuilles de calcul Excel, et que tout à coup vous partez en vacances et que vos collègues, ou un apprenti prennent plus ou moins votre place, vous n'avez pas tellement envie de leur laisser libre accès à vos précieuses feuilles de calcul, non ?
C'est exactement à ça que vont servir les formulaires !
C'est à dire que vous allez pouvoir construire une jolie interface* graphique avec des listes déroulantes, des boutons, enfin bref : Une superbe mise en page des données qui va vous permettre de laisser des gens qui s'y connaissent moins bien que vous saisir simplement ou effacer, ou modifier des données dans vos tables sans vraiment de risque d'erreur !
* Une interface graphique est la partie visible d'un système. Le bouton démarrer et les icônes sont l'interface graphique de Windows, et pas Windows à proprement parler
Pour mieux illustrer ce que je voulais vous dire, dans Access, allez dans le menu Outils/Options, et cliquez sur l'onglet "Feuille de données" :
N'est-ce pas très sympathique de choisir ses options dans un cadre aussi agréable que celui-ci ?
Voilà ce que sont les formulaires : Un environnement de saisie des données (en gros)
Cliquez sur "Formulaires", et sur Nouveau :
Dans la boîte de dialogue qui apparait, choisissez "Formulaire instantané : Colonnes"
Dans la liste déroulante du bas, choisissez "T_Celebrite"
*, et cliquez sur OK :
*Dans la liste déroulante du bas, ou vous avez choisi T_Celebrite, vous avez constaté que les tables et les requêtes étaient mélangées dans la même liste : Grâce au fait que nous avons commencé toutes nos tables par T et toures nos requêtes par R, comme dans cette liste, tout est rangé par ordre alphabétique, les tables sont naturellement séparées des requêtes... C'est aussi simple que ça !
Dès que vous avez cliqué sur OK, vous voici maintenant l'heureux propriétaire de votre premier formulaire :
Il est possible que vous n'obteniez pas un formulaire tout gris comme moi, mais avec un fond coloré, et l'apparence des champs diffère quelque peu. Ne vous en faites pas, ce n'est pas très important, nous verrons plus tard d'ou ça vient.
Constatez quelques imperfections au sein de mon formulaire : La date de naissance ne tient tout juste pas dans sa zone, l'étiquette "Remarques éventuelles" a été un peu tronqué, à l'inverse, d'autres champs sont manifestement un peu trop larges, comme le salaire mensuel par exemple.
REMARQUE IMPORTANTE : Sur certaines versions d'Access 97, lorsque vous demandez ce même assistant formulaire, il est possible qu'il "oublie" de vous installer les listes déroulantes (Titre, Domaine, Pas et Etat civil), ainsi que la case à cocher qu'il vous transforme en simple zone de texte Oui/Non. C'est un bug *... Si ça vous est arrivé, ce n'est pas grave pour l'instant, laissez comme ça.
* Un bug est une erreur interne du produit dont nul ne sait d'ou elle provient...
Nous allons commencer par nous déplacer à l'intérieur : vous constatez que, contrairement aux tables, vous n'avez sous les yeux qu'un seul enregistrement : Le premier (Napoléon Bonaparte)
Vous constatez également que vous pouvez cliquer dans n'importe quel
champ. Pour utiliser le clavier, appuyez sur la touche tabulation
: Vous passez de Titre à Nom, ensuite à Prénom, etc. Quand
vous arrivez sur le dernier champ (Remarques éventuelles), et que vous
appuyez encore une fois sur tabulation
,
vous arrivez au premier champ du 2ème enregistrement
("Madame", de Carole Bouquet). Pour revenir en arrière champ
par champ, vous appuyez sur MAJUSCULE-Tabulation (
).
En utilisant les touches PAGE UP
et PAGE DOWN
,
vous vous déplacez directement d'un enregistrement à l'autre.
Allez sur le 3ème enregistrement (C'est Georges Brassens normalement *). En dessous de votre formulaire, vous voyez ce qu'on appelle les boutons de déplacement :
* Je dis normalement, parce que pour une raison qui m'échappe parfois, Access à tendance à retrier les données un peu comme bon lui semble. Ce n'est pas vraiment un problème puisqu'à tout moment, on peut lui demander l'ordre qu'on désire réellement.
A
|
Veut simplement dire "Enregistrement" |
B
|
Permet d'aller directement au premier enregistrement (Ici,
c'est Napoléon). Equivalent clavier : CTRL/HOME (![]() ![]() |
C
|
Permet de remonter d'un enregistrement (équivalent
à PAGE UP ![]() |
D
|
Signifie que nous sommes sur le 3ème enregistrement
(Ce n'est pas d'une utilité transcendantale). Vous pouvez aller directement
au 82ème enregistrement directement simplement en écrivant
82 à la place de 3, et appuyez sur ENTER ![]() |
E
|
Permet d'avancer d'un enregistrement (équivalent à
PAGE DOWN ![]() |
F
|
Permet d'aller directement sur le dernier enregistrement (équivalence
clavier : CTRL END : ![]() ![]() |
G
|
Permet d'aller sur un nouvel enregistrement (Dans le but de créer un nouveau client) |
H
|
Affiche le nombre d'enregistrements total du formulaire. Attention : Si vous cliquez simplement sur G, il vous indiquera "Enr. 101 sur 101", même si vous n'avez encore rien écrit ! |
Absolument ! Essayons : Triez les enregistrements par ordre alphabétique du prénom. Vous vous souvenez ? il suffit de cliquer avec le bouton droit de la souris sur le prénom, et de choisisr "Tri croissant" (c'était à la leçon 19)
Maintenant, le premier enregistrement est Coluche *, suivi de Fernandel, Dave, Hardi, Bourvil (pas de prénom non plus), et ça continue avec AL pacino, ALBERTO tomba, etc... Le dernier est bien ZINEDINE zidane ?
* Coluche, c'est son nom, pas son prénom : il n'a pas de prénom... Donc, champ vide = se place en tête de la liste
Bien entendu. Essayez : Demandez les gens qui gagnent plus de 28000 francs
par mois : Vous devriez obtenir 8 enregistrements : .
Constatez qu'il a, comme dans les tables, ajouté (Filtré) à
côté de 8. Vous pouvez bien entendu les trier ensuite par ordre
du plus pauvre au plus riche, ou par ordre alphabétique, ou même
redemander à afficher tous les enregistrements...
Oui. D'ailleurs, j'irai même plus loin, nous SOMMES dans la table T_Celebrite.
Si. En fait, le formulaire n'est qu'une sorte de filtre sur la table : Les requêtes étaient des filtres "techniques", et bien, les formulaires sont des filtres "esthétiques". Vous vous rappelez à la leçon 21 ?
Avec les requêtes c'était le même principe : Si vous changez les données dans les requêtes, ça change en fait dans la table
Exactement. Faites ce test :
Petite astuce : Vous pouvez toujours travailler avec le clavier, sans jamais utiliser la souris pour modifier les données des formulaires : Même si vous êtes sur une case à cocher : Si vous êtes sur "Decede" (vous vous êtes déplacé jusque là avec la touche tabulation, et un petit liseré gris apparait alors), vous pouvez utiler votre BARRE D'ESPACEMENT pour mettre ou enlever la coche
Evidemment. En fait, les requêtes et les formulaires travaillent vraiment drectement dans les tables.
Comme d'habitude, oui.
Bon, enlevez les XXX à côté de Bonaparte, et faites un simple exercice : Recréez le même formulaire qu'on vient de faire, et sauvez-le cette fois sous F_CelebriteAssistantInstantaneColonne.
Pour supprimer un enregistrement, cliquez dans la zone de sélection
de l'enregistrement sur la gauche de l'écran : .
Quand vous cliquez, cette zone devient grise foncée, presque noire :
. A ce moment,
vous pouvez effacer un enregistrement en appuyant sur la touche DELETE
.
Essayez : Vous avez un message d'avertissement :
.
Si vous répondez oui, vous allez vraiment effacer l'enregistrement y
compris dans la table... Répondez donc non
pour éviter cela (encore que comme vous pouvez toujours retélécharger
la base de données telle qu'elle était
au début de cette leçon à tout moment, ce n'est pas
très important)
Voilà. Vous avez tout compris. Je me suis un peu répété simplement parce que comme ce formulaire ne montre qu'un enregistrement à la fois, ce n'était peut être pas si évident de faire la relation.
Oui. Nous pouvons. Nous allons le faire immédiatement. Fermez le formulaire
F_CelebriteAssistantInstantaneColonne que vous venez de recréer, et faites
à nouveau .
Mais cette fois, choisissez "Formulaire instantané Tableau",
et choisissez toujours T_Celebrite, et OK. Voici le résultat :
Exactement. C'est très sympa, mais regardez de plus près : Comme la table comporte un bon nombre de champs, il y a plein de choses tronquées : Le titre n'est pas complet (Monsie, Madam), Le domaine non plus, l'état civil non plus, le salaire mensuel est carrément illisible ainsi que la date de naissance !
L'assistant "Formulaire instantané Tableau" ne travaille pas très bien avec des tables qui sont composées de nombreux champs.
Oui, ou alors on peut carrément baser ce formulaire sur une requête qui, elle, ne comporte pas autant de champs que la table !
On va essayer : Fermez ce formulaire totalement dégueulasse, dont l'utilisation me ravit à peu près autant que de passer un réveillon avec un phoque mort, et ne l'enregistrez pas. Retournez dans les requêtes et allez visualiser "R_CelebriteCalculSalaireAvecPrime500" Vous vous souvenez ? C'était une requête avec un champ calculé...
Déjà oublié ? Retournez donc jeter un coup d'oeil à la leçon 28 pour vous rafraîchir la mémoire, sinon ça va être difficile.
Alors, maintenant, créez un formulaire "Assistant instantané
tableau", et choisissez donc "R_CelebriteCalculSalaireAvecPrime500",
et OK. Voici le résultat :
...Avec votre champ calculé "Salaire avec prime" qui est bien là. Comme dans la requête quoi...
Oui, nous allons remédier à celà bientôt. Pour l'instant ne vous en préoccupez pas.
Evidemment non. Si vous essayez de changer un Salaire avec prime, par exemple,
essayez de changer les 100000 francs de Napoléon en 12000 francs, vous
ne pouvez pas : Vous avez toujours le message d'erreur dans la barre d'état
en dessous de votre écran :
Bien sûr : C'est toujours le même principe : le formulaire est basé sur la requête, la requête est basée sur la table DONC ce que vous changez dans le formulaire (Ajout, modification, suppression) sera instantanément répercuté en cascade dans la table.
Fermez votre formulaire, et Enregistrez-le sous
F_CelebriteCalculSalaireAvecPrime500AssistantInstantaneTableau
Oui, mais c'est explicite :
F_ | pour "Formulaire |
Celebrite | Ca vient de la table Celebrite |
CelebriteCalculSalaireAvecPrime500 | En fait ça vient de la requête R_CelebriteCalculSalaireAvecPrime500 |
CalculSalaireAvecPrime500 | Ca explique le calcul en 2 mots |
AssistantInstantaneTableau | Pour expliquer comment nous avons fait ce formulaire |
Evitez d'appeler vos formulaires F_1, F_2, F_3, etc. uniquement parce que vous manquez d'imagination ou que vous avez la flemme de leur donner un nom plus explicite. Quand vous en aurez 30 ou 40, je vous garantis que vous ne saurez plus quel formulaire fait quoi, et vous allez devenir fou !
Faites donc un petit exercice :
Créez un nouveau formulaire en Assistant Instantané Tableau, basé
sur la R_CelebriteCinemaFrancais (Voyez comme le nom de la requête est
explicite : Comme elle commence par R, je n'ai pas besoin de vous spécifier
que c'est une requête, et le nom est suffisamment évoquateur pour
ne pas avoir à le réexpliquer)
Vous n'avez pas tous les enregistrements évidemment :
Non puisque ça provient de la requête... Or, la requête est complète par rapport à elle-même...
Exactement : Essayez de filtrer tous les "Michel" avec le bouton droit de la souris
C'est tout ce que je voulais dire. Fermez ce formulaire, et nommez-le F_CelebriteCinemaFrancais.
Nous allons voir maintenant comment créer un formulaire un petit peu
plus personnalisé... Jusqu'ici nous n'avons pas vraiment pu ajouter notre
grain de sel. Faites encore une fois Formulaire, Nouveau
Il n'est pas intéressant : Il va vous concevoir un formulaire qui ressemble esthétiquement à une table : Pas vraiment d'intérêt ici.
Ah celui-là est plus sympa : C'est pour créer un graphique (comme dans Excel) mais on prend directement les données des tables. On verra ça à la leçon 54.
Pour l'utiliser, il faut posséder également Excel : Si vous ne savez pas ce que c'est qu'un tableau croisé dynamique, Essayez d'en créer un directement avec Excel (Dans Excel : menu Données/Rapport de tableau croisé dynamique), mais ça sort largement du cadre de ce cours.
Oui : maintenant, vous allez donc choisir ,
OK, et "Assistant formulaire", choisissez comme d'habitude T_Celebrite,
et OK.
Vous arrivez dans cette première boîte de dialogue : .
Il s'agit de sélectionner les champs de votre table qui vont apparaître
dans le formulaire. Bon, dans 99% des cas, nous avons besoin de tous les champs,
puisque le but même du formulaire est de saisir des données. Cliquez
donc sur la double flèche >> et SUIVANT.
La 2ème boîte de dialogue permet de choisir la présentation
:
Colonne simple | C'est comme le premier formulaire que nous avons créé tout à l'heure : Un seul enregistrement par écran |
Tabulaire | C'est comme le formulaire instantané tableau : Plusieurs enregistrements sur un même écran |
Feuille de données | C'est une présentation qui ressemble à une table comme une soeur jumelle : Intérêt très limité |
Justifié | C'est une présentation que nous n'avons pas encore vue, on ne pouvait pas la choisir dans les formulaires instantanés, c'est seuleemnt ici qu'on peut la sélectionner. |
Afin de se rendre compte de ce qu'est la présentation en Justifié, sélectionnez-là et cliquez sur SUIVANT.
Cette boîte de dialogue est sans doute la plus amusante : .
C'est ici que vous pouvez choisir l'apparence générale de votre
formulaire : Cliquez dans les différents thèmes : Bleu, expédition,
etc. pour vous rendre compte des différents choix. Si vous travaillez
avec Access 97, vous avez d'autres noms et d'autres choix mais le principe est
le même.
Et, justement, c'est là que c'est subtil : Ce que vous allez choisir comme thème maintenant va être mémorisé par Access, et toutes les prochaines fois que vous allez choisir un formulaire instantané Tableau ou Colonne simple, il va se rappeler de ce que vous choisissez maintenant, et vous réappliquera le même thème toutes les fois suivantes.
Choisissez Fax *
* "International" si vous êtes avec Access
97)
et cliquez sur SUIVANT
Ceci est la dernière boîte de dialogue : .
Donnez dès maintenant le nom de votre formulaire : F_CelebriteSemiPersonnalise,
et comme il n'y a plus de bouton Suivant, cliquez sur TERMINER. Voilà
:
C'est ce que vous voyez à l'écran: Ce sont les étiquettes qui sont juste au dessus des champs (Nom qui est au dessus de Bonaparte par exemple). Et un seul enregistrement par écran.
Oui, contrairement au style Tableau, ou parce qu'il affiche plusieurs enregistrements sur un même écran, on ne peut pas avoir trop de champs, ici, ce style de formulaire est particulièrement adapté aux formulaires basés sur des tables qui possèdent un grand nombre de champs, sans qu'ils se chevauchent !
Bon, on constate malgré tout des imperfections : Par exemple, le champ contenant la date de naissance est vraiment beaucoup trop large... Mais bon, c'est un détail, mais quand même !
Fermez ce formulaire.
Non. Vous lui avez donné le nom F_CelebriteSemiPersonnalise dans la dernière boîte de dialogue. Il l'a déjà enregistré.
Oui. Essayez : Créez un nouveau formulaire "Formulaire instantané : Colonnes".
Oui. C'était pour vous montrer que chaque présentation de formulaire a son importance. Bon fermez ce formulaire sans l'enregistrer.
REMARQUE : Si dans la table, vous avez pris soin d'indiquer les légendes des champs, les formulaires ensuite basés sur cette table reprennent les légendes des tables, d'ou l'immense intérêt des légendes
Le formulaire est une interface utilisateur graphique permettant de saisir et de visualiser les données des tables et des requêtes à l'écran de façon esthétique et conviviale. Il existe plusieurs styles de formulaires : Les formulaires en colonne (Un seul enregistrement à l'écran) et en tableau (Plusieurs enregistrements à la fois sur l'écran). Tout comme les requêtes, les formulaires puisent directement dans les tables : Tout changement apporté à une donnée (Ajout, suppression, modification) sera immédiatement effective sur la table sous-jacente. Nous avons vu deux manières de faire des formulaires : De manière semi automatique (Assistant formulaire), ou complètement automatique (Assistant instantané colonne ou tableau - qui permet l'assistant justifié, destiné aux tables comprenant de nombreux champs). |
Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses. |
Créez une base de données appelée
Video.MDB dans laquelle vous allez entrer vos différents films
que vous possédez en cassette vidéo ou DVD. Voici 3 films qui vous allez rentrer à titre d'exemple : (Vous les entrerez DANS LE FORMULAIRE, PAS dans la table) - Le Gendarme à St-Tropez, Film français,
Comique, avec De Funès comme acteur principal. Il dure 95 minutes,
il est en cassette vidéo Pour simplifier, ne créez pas de tables-sattelites pour créer vos listes déroulantes, mais faites les en local, même si ce n'est pas très "pro" A vous de déterminer quels éléments vous avez besoin (Tables ? Champs? Requêtes ? Formulaires ? Sous-Tables ? Listes déroulantes ? Types de données ? Cases à cocher ? etc.). Pensez à remplir les légendes des champs dans les tables |
Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.
Avez-vous une question technique
concernant cette leçon ? Cliquez
ici !
Une remarque sur cette leçon ? Un problème
? Une erreur ? une ambiguité ? Soyez
gentil de m'en informer