Sommaire
- Formulaires : Explications de leur utilité
- Formulaires : Création d'un formulaire avec l'assistant instantané Colonnes
- Formulaires : Touches de raccourci de déplacement dans les champs et les enregistrements
- Formulaires : Tris et extractions de données dynamiquement
- Formulaires : Interaction immédiate avec les données de la table sous-jacente
- Formulaires : Effacement des enregistrements
- Formulaires : Déplacement rapide entre les enregistrements
- Formulaires : Création d'un formulaire à l'aide de l'assistant Formulaire Instantané : Tableau
- Formulaires : Création d'un formulaire basé sur une requête contenant des champs calculés
- Formulaires : Conventions de dénomination des formulaires
- Formulaires : Création d'un formulaire semi-personnalisé
- Formulaires : L'assistant formulaire Justifié
Formulaires : Explications de leur utilité
A quoi servent exactement les formulaires ?
- les requêtes servent à EXTRAIRE les données, et faire des calculs
- les formulaires vont servir à SAISIR les données
Mais on pouvait déjà les saisir dans les tables et les requêtes, non ?
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 ?
Ca c'est vrai ! J'en ai des sueurs froides !
Chaque fois que je ne suis pas là, je suis bien obligé de laisser l'accès à mes feuilles Excel, parce que sinon, la boîte s'arrête de fonctionner ! Quiand je reviens, j'ai toujours une peur bleue de ne rien retrouver comme quand je suis parti !
C'est exactement à ça que vont servir les formulaires !C'est à dire ? ...
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)
Formulaires : Création d'un formulaire avec l'assistant instantané Colonnes
Compris ! Comment commence-t-on ?
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...
Formulaires : Touches de raccourci de déplacement dans les champs et les enregistrements
OK. Maintenant, qu'est-ce que je fais avec mon formulaire ?
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




En utilisant les touches PAGE UP


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 ! |
En fait, ces boutons de déplacement seraient plus utiles si, par exemple, les gens étaient triés par ordre alphabétique...
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
Formulaires : Tris et extractions de données dynamiquement
Oui, bien sûr ! Donc je suppose qu'on peut également extraire certaines données (comme les tables dans la leçon 19) ?
Bien entendu. Essayez : Demandez les gens qui gagnent plus de 28000 francs par mois : Vous devriez obtenir 8 enregistrements :
En fait, c'est vraiment comme dans les tables !
Oui. D'ailleurs, j'irai même plus loin, nous SOMMES dans la table T_Celebrite.Oui, bon, quand même pas !
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
Formulaires : Interaction immédiate avec les données de la table sous-jacente
Ah OK ! C'est le même principe ! Si je change quelque chose dans le formulaire, ça changera automatiquement dans la table, même si je n'enregistre pas mon formulaire !
Exactement. Faites ce test :- Allez dans Napoléon Bonaparte (Ah oui, il faut le trouver... débrouillez-vous...)
- Remplacez Bonaparte par BonaparteXXX
- Quittez le formulaire. Access vous demande de l'enregistrer (La structure du formulaire donc, PAS les données). Dites NON
- Allez ensuite dans la table et vérifiez : Bonaparte est maintenant BonaparteXXX
Effectivement. Et donc toutes les requêtes qui contiennent Bonaparte contiennent BonaparteXXX
Evidemment. En fait, les requêtes et les formulaires travaillent vraiment drectement dans les tables.Il faut donc faire vraiment attention !
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 sousF_CelebriteAssistantInstantaneColonne.
Formulaires : Effacement des enregistrements
Pour supprimer un enregistrement, cliquez dans la zone de sélection de l'enregistrement sur la gauche de l'écran :



Oui. En fait, c'est vraiment le même principe que dans les tables ou les requêtes. Je me rappelle de l'effacement dans les tables à la leçon 5.
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.Formulaires : Déplacement rapide entre les enregistrements
Oui, c'est vrai : Nous n'avons vu qu'un seul enregisrement par écran... Est-il possible d'en voir plusieurs à la fois sans devoir appuyer sur page up ou page down, ni utiliser les flèches de déplacement
?
Formulaires : Création d'un formulaire à l'aide de l'assistant Formulaire Instantané : Tableau
Oui. Nous pouvons. Nous allons le faire immédiatement. Fermez le formulaire F_CelebriteAssistantInstantaneColonne que vous venez de recréer, et faites à nouveau

Ah oui ! Je vois ! La grande différence avec le formulaire d'avant, c'est que cette fois, on voit plusieurs enregistrements à la fois : Napoléon, Carole Bouquet, etc...
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 !Oui, finalement c'est nul !
L'assistant "Formulaire instantané Tableau" ne travaille pas très bien avec des tables qui sont composées de nombreux champs.Formulaires : Création d'un formulaire basé sur une requête contenant des champs calculés
Ce qui veut dire qu'avec des tables qui n'ont presque pas de champs (Comme T_Pays par exemple), ça se comporterait mieux ?
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é...
Ah oui ! Comment ça allait déjà ?
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.OK. C'est bon.
Alors, maintenant, créez un formulaire "Assistant instantané tableau", et choisissez donc "R_CelebriteCalculSalaireAvecPrime500", et OK. Voici le résultat :
C'est mieux ! Tous les champs sont là, bien aérés !
...Avec votre champ calculé "Salaire avec prime" qui est bien là. Comme dans la requête quoi...C'est marrant, le salaire avec prime possède le signe Euro devant...
Oui, nous allons remédier à celà bientôt. Pour l'instant ne vous en préoccupez pas.Et donc, tout comme dans la requête, je ne peux pas changer le montant du Salaire avec prime je suppose
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 :
Et si j'efface un enregistrement, ça va effacer dans la table ?
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.Formulaires : Conventions de dénomination des formulaires
C'est vraiment logique !
Fermez votre formulaire, et Enregistrez-le sousF_CelebriteCalculSalaireAvecPrime500AssistantInstantaneTableau
C'est pas un peu long ?
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 |
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 :

Oui, tiens, c'est marrant, ce n'est pas marqué "(Filtré)" à côté de 17...
Non puisque ça provient de la requête... Or, la requête est complète par rapport à elle-même...Il ne met "Filtré" que quand on filtre avec le bouton droit de la souris !
Exactement : Essayez de filtrer tous les "Michel" avec le bouton droit de la sourisEt voilà ! OK, maintenant, je n'en ai plus que 2 (Michel Simon et Michel Blanc), et il me met bien "Filtré" en bas.
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

C'est quoi L'assistant instantané feuille de données ?
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.Et l'assistant graphique ?
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.Et l'assistant tableau croisé dynamique ?
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.Formulaires : Création d'un formulaire semi-personnalisé
Revenons à nos moutons... Nous allons donc concevoir un formulaire semi-personnalisé...
Oui : maintenant, vous allez donc choisir
Vous arrivez dans cette première boîte de dialogue :

Formulaires : L'assistant formulaire Justifié
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. |
Cette boîte de dialogue est sans doute la plus amusante :

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 :


D'accord : Le fond y est, et le style justifié, c'est quoi alors ?
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.C'est assez compressé comme présentation
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.
Il ne me demande pas d'enregistrer ?
Non. Vous lui avez donné le nom F_CelebriteSemiPersonnalise dans la dernière boîte de dialogue. Il l'a déjà enregistré.Et maintenant, donc, si je demande un formulaire instantané, il va me le faire avec une présentation "Fax" ?
Oui. Essayez : Créez un nouveau formulaire "Formulaire instantané : Colonnes".Ah oui : Il m'a gardé la même présentation. C'est sympa ! Mais par contre il y a juste 2 champs... ça fait idiot d'avoir un seul enregistrement par écran !
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
Bon... Hem... On peut résumer ?
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). |
Avez-vous bien compris ?
|
Exercice
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. L'exercice consiste à pouvoir saisir vos films convivialement à l'aide d'un formulaire F_Video qui sera un formulaire instantané colonne, sans thème particulier (le formulaire doit être simplement gris, standard) 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 - Godzilla, Film américain, Science-fiction, Pas d'acteur principal, il dure 117 minutes, DVD - Titanic, Film américain, Aventure, avec Leonardo di Caprio, il dure 186 minutes, DVD 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 Téléchargez la solution de l'exercice ici |
0 commentaires:
Enregistrer un commentaire