Leçon 30 : Création manuelle de formulaires

Temps nécessaire pour suivre cette leçon : Une petite demie heure

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

Aperçu de cette leçon

Dans cette leçon, nous allons apprendre à créer des fomulaires de toutes pièces a partir de rien... Pour une fois, il va s'agir d'éveiller votre esprit "artistique" plutot que logique. En effet, le formulaire étant en quelque sorte "La carte de visite" de votre base de données (Finalement, il n'y aura plus que les formulaires qui seront visibles), ils ont tout intérêt à être les plus conviviaux, esthtétiques et pratiques possibles.

Sommaire

  1. Formulaires : Création d'un formulaire sans l'aide d'assistant
  2. Formulaires : Insertion de champs dans un formulaire
  3. Formulaires : Déplacement de champs existants au sein d'un formulaire
  4. Formulaires : Déplacement de champs et d'étiquettes indépendamment
  5. Formulaires : Changement de la taille des champs et des étiquettes
  6. Formulaires : Problèmes inhérents à la taille variable des caractères contenus dans un champ
  7. Formulaires : Effacement et sélection d'un et de plusieurs champs

Formulaires : Création d'un formulaire sans l'aide d'assistant

Comment procède-t-on pour créer un formulaire à partir de rien ?

Le début est comme d'habitude : . Mais maintenant choisissez "Mode Création", "T_Celebrite", et OK:

Vous arrivez ici : . C'est le formulaire en MODE CREATION. C'est à dire que vous allez maintenant placer les différents champs de votre table dans la zone avec les petits carrés (Détail).

Et ils sont où mes champs ???

Vous les obtenez avec le menu Affichage/Liste des champs.

Ah oui ! Je les avais, et je viens de les faire disparaître !

Refaites encore Affichage/Liste des champs : Une fois ça les fait apparaître, une autre fois, ça les fait disparaître. Quand vous les avez, vous avez la liste de vos champs qui apparait comme ceci :


Formulaires : Insertion de champs dans un formulaire

Et comment faire pour les placer dans mon formulaire ?

Il suffit de les faire glisser dans la grille avec votre souris, comme ceci : Prenez par exemple NomClient :

Vous avez maintenant votre champ dans votre formulaire : . Comme exercice, faites également glisser le prénom et le domaine en dessous du nom :

On peut même placer des champs dans la zone grise foncée, en dessous de la grille ???

Oui, la grille va s'agrandir automatiquement. Ce n'est pas un problème

Vous êtes maintenant l'heureux propriétaire d'un formulaire (fort primitif...), mais un formulaire quand même.

Nous allons le tester, c'est à dire que nous allons voir s'il se comporte comme les formulaires instantanés : Peut-on ajouter, modifier, supprimer, trier, filtrer des enregistrements ?

Bien sûr ! Pour s'en rendre compte, il faut lancer le formulaire en mode saisie de données : Cliquez sur l'icône qui se trouve en haut à gauche de votre formulaire (C'est la même chose que le menu Affichage/Mode formulaire).

Vous êtes maintenant en mode saisie de données : Vous êtes normalement sur Napoléon Bonaparte : . Si vous appuyez sur Tablutaion, vous passez de champ en champ, et vous appuyez sur PAGE DOWN, vous arrivez sur le 2ème enregistrement, vous pouvez filtrer, trier, entrer modifier ou supprimer les données : enfin bref, vous pouvez utiliser votre formulaire EXACTEMENT comme ceux que nous avons vu lors de la leçon précédente !

Donc en mode Saisie de données, vous traitez les DONNEES (Ajout, suppression, etc.) et en mode création, vous modifiez l'ASPECT du formulaire. Ne confondez pas les deux !

Revenez maintenant en mode création : Là, je ne devrais pas avoir besoin de vous l'expliquer, c'est la petite équerre en haut à gauche, comme les requêtes ou les tables.

Donc attention : Vous avez bien pour chaque information une ETIQUETTE et un CHAMP : . L'étiquette, c'est simplement la dénomination du champ, le champ, c'est l'information, le contenu. En mode création du formulaire, vous voyez 2 fois "Prenom", mais quand vous lancez votre formulaire en mode création, vous voyez alors nettement la différence : L'étiquette reste Prénom, et le champ devient Napoléon (et va changer selon l'enregistremetn sur lequel on est évidemment)

Ne vous trompez pas : En mode création, ne commencez pas à écrire dans le champ ! J'en ai déjà vu qui écrivaient un client ici (en mode création, donc): . Que se passe-t-il ? Dès qu'on lance le formulaire en mode saisie de données, on subit cette erreur : ... Donc, en mode création, on ne modifie PAS le contenu des champs.

J'ai compris. Mais juste un petit truc : Comment cela se fait-il que l'étiquette soit marquée "Prénom" et le champ "Prenom" ???

Ce sont de vieux souvenirs, n'est ce pas ? ... Vous vous souvenez de la légende, à la leçon 4 ? C'était la possibilité de donner un titre de colonne qui soit différent que le nom du champ : Justement pour éviter de mettre un accent sur le nom du champ Prenom, nous lui avons dit que la légende était "Prénom" pour que ce soit plus joli : Eh bien Access à la sympathie de récupérer cette légende si elle existe et de l'installer en étiquette à la place du nom du champ : Le champ est donc Prenom, c'est normal, et... l'étiquette est Prénom, ce qui correspond à la légende dans la table.

Ouh là ! Oui, c'est vieux tout ça !

Oui, mais il ne faut rien oublier : Vous constatez que les différents aspects d'Access commencent gentiment à se lier les uns aux autres, et ce n'est pas fini !

Plus nous allons avancer, plus les interactions seront importantes. Alors, si vous avez oublié l'un ou l'autre des précédents chapitres, c'est le moment de les réviser... Parce que si vous n'êtes pas à l'aise déjà maintenant, ça va devenir de plus en plus pénible pour vous...


Formulaires : Déplacement de champs existants au sein d'un formulaire

Nous allons maintenant étudier comment déplacer les champs une fois posés sur le formulaire en mode création. Ce n'est pas bien compliqué, mais il y a quelques subtilités.

En mode création, donc, cliquez sur le champ domaine : : Vous constatez qu'il y a plein de petits carrés noirs qui apparaissent tout autour du champ DOMAINE. On dit que vous avez sélectionné Domaine. Cliquez maintenant sur le champ Prenom : . C'est mainteannt le champ Prenom qui est sélectionné (Avec les petits carrés tout autour). Vous pouvez donc ainsi sélectionner n'importe quel champ de cette manière. Attention, car il y a une subtilité :

- Cliquez une première fois sur le champ Domaine : . Maintenant, RE-cliquez une 2ème fois dans le champ Domaine : : Cette fois, c'est différent : Il n'y a PLUS de carrés noirs tout autour, mais il n'y a plus qu'une petite barre verticale qui clignote à la fin de Domaine : Ce n'est pas bon : Comme vous avez cliqué une fois de trop, Access croit que vous désirez changer le nom du champ (Comme l'exemple de l'erreur que je vous avais montré un peu avant, vous vous souvenez ? Avec "Marcel"), je vous avais demandé de bien faire attention de ne RIEN écrire dans les champs en mode création.

Mais c'est idiot qu'on puisse écrire dans les champs en mode création !

Oui.. Enfin, oui et non... Disons que pour le moment, c'est stupide et inutile *

* Nous verrons plus tard que nous pouvons avoir des champs calculés dans les fomulaires, comme dans les requêtes.

Je vais me contenter de vous dire qu'il ne faut pas le faire. Donc, si vous avez cliqué une fois de trop et que vous avez cette petite barre verticale qui clignote, il FAUT que vous cliquiez ailleurs n'importe où dans votre fomulaire en mode création : , et, juste après, vous recliquez sur le champ Domaine UNE SEULE fois: , c'est la seule manière de s'en sortir.

Comme je vous l'ai déjà mentionné, ne confondez pas le CHAMP et l'ETIQUETTE : . Si vous cliquez sur le champ Domaine : , vous aurez des petits carrés noirs tout autour du champ, plus un gros carré noir en haut à gauche du champ + encore un gros carré noir en haut à gauche de l'étiquette "Domaine".

Si vous cliquez sur l'étiquette Domaine : , cette fois, c'est l'ETIQUETTE Domaine qui sera cernée de petits carrés noirs, et le champ Domaine qui possèdera un gros carré noir en haut à gauche.

Entraînez-vous simplement à sélectionner et déselectionner les différents champs et étiquettes, histoire d'être à l'aise avec ces sélections.

Bien. Et pour déplacer les champs et les étiquettes, comment procède-t-on ?

Par exemple, supposons que nous voulions déplacer le champ Prenom un peu plus à droite qu'il n'est actuellement.

Sélectionnez le champ Prenom (Vous savez maintenant comment faire, et comment vous sortir des différents pièges). Maintenant, il va falloir trouver une petite MAIN NOIRE : C'est à dire qu'en déplaçant doucement la souris par dessus le champ Prenom, SANS CLIQUER, qui est donc sélectionné, à certains moments, vous allez voir votre souris qui se transforme en petite main noire . . Cette petite main noire se trouve entre les carrés noirs : . Donc, pour déplacer votre champ, vous choisissez l'une de ces petites mains noirs, cliquez dessus, et faites glissez le champ plus à droite pour obtenir ce résultat : .

Petite astuce : Lorsque vous déplacez les champs, vous constatez que vous ne les déplacez pas exactement comme vous voulez,. mais qu'ils se déplacent pas petits à-coups, ce qui fait que vous ne pouvez pas les déplacer exactement ou vous voulez au millimètre près... pourtant parfois c'est bien pratique.. En fait, quand vous les déplacez, ils s'arrangent pour être en quelque sorte "magnétisés" sur une sorte de petite grille invisible, ce qui a pour effet intéressant de pouvoir les aligner assez facilement les uns par rapport aux autres... Contrairement à si vous pouviez les déplacer vraiment au millimètre près, ce serait moins facile... Donc, finalement, dans certains cas, c'est intéressant, dans d'autres, on aimerait bien placer un champ exactement là ou on le désire : Pour ce faire, en même temps que vous déplacez le champ, maintenez votre doigt appuyé sur la touche , et cette fois il va se déplacer beaucoup plus précisément.


Formulaires : Déplacement de champs et d'étiquettes indépendamment

C'est marrant, j'ai bien pris que le champ, et l'étiquette s'est également décalée vers la droite...

Et je suppose que vous désirez savoir comment faire pour ne déplacer que le champ, et PAS l'étiquette ?

Si c'est possible ?...

Ca l'est. Quand vous cliquez sur le champ (Prenom par exemple), vous avez plein de petits carrés noirs qui apparaissent, et vous venez d'apprendre qu'entre ces carrés noirs, vous avez votre souris qui se stransforme en petite main noire... MAIS si vous allez positionner votre souris précisément sur le gros carré en haut à gauche du champ, ce n'est PAS une main noire qui apparait, mais un petit DOIGT noir , comme ceci : . Grace a ce petit DOIGT noir, vous pouvez déplacer le champ, et PAS son étiquette : Par exemple pour rapprocher le champ et l'étiquette, comme ceci :

Effectivement. Donc je suppose que quand je ne veux déplacer que l'étiquette, et pas le champ, je clique sur l'étiquette, et je la déplace avec son gros carré noir aussi ?

Oui. Entraînez-vous, c'est important, Déplacez les champs, les champs et les étiquettes, que les champs, que les étiquettes, soyez à l'aise avec ça.


Formulaires : Changement de la taille des champs et des étiquettes

OK. Et les autres petits carrés , ils servent à quoi ?

Ils servent à redimensionner les champs : vous pouvez les demander plus hauts, plus larges, plus étroits, plus grands ou plus petits.

Quand votre souris est sur un de ces petits carrés, elle se transforme en double flèche, ce qui permet de changer la dimension du champ, comme ceci par exemple : . Essayez !

Comme exercice, essayez d'avoir une présentation qui ressemble le plus possible à ceci :

. Ca va vous apprendre à déplacer et dimensionner les champs et les étiquettes exactement comme vous le voulez.

Avec un peu d'entrainement, ça va tout seul. Et plus un champ est large, plus il peut contenir de texte alors ?

Mais non, absolument pas ! C'est quoi cette nouvelle théorie ???

Si vous avez par exemple le chanp prénom qui a été défini dans la table comme ayant 10 caractères maximum, vous aurez beau avoir un champ qui fait toute la largeur de l'écran, vous ne mettrez pas un 11ème caractères, point.


Formulaires : Problèmes inhérents à la taille variable des caractères contenus dans un champ

Mais alors, à quelle taille dois-je ajuster mon champ dans le formulaire ? Exactement au mot "prénom", comme ceci : ?

Mais pas du tout ! Non plus !

Maintenant, vous êtes en mode création, tout va bien... Mais c'est en mode saisie de données que votre formulaire va devoir servir... Quand vous allez avoir de noms plus longs comme "Jules-Edouard" par exemple, il va être tronqué :

J'ai compris !!! Donc euh..

Donc, on fait ça au feeling, on ne peut pas tellement faire autrement. Essayez de changer la taille plusieurs fois, et entre chaque tentative, allez en mode saisie de données, et changez plusieurs fois d'enregistrement, afin de voir si la taille de votre champ s'adapte bien avec la plupart des prénoms. Vous allez vite comprendre que ce n'est pas si simple, et que l'on peu passer des milliards d'années* à peaufiner au millimètre près les éléments des formulaires.

* J'exagère peut être un peu. Disons quelques dizaines de millions, tout au plus.

Ce qu'on pourrait faire, c'est voir combien il y a de lettres maximum dans le champ prénom, et on lui donne la bonne largeur !

Non, même pas parce que admettons que la taille soit de 10 maximum, iiiiiiiii est plus petit que WWWWWWWWWW... La taille des lettres change *

* Mais ça dépend de la police de caractères que vous utilisez dans votre formulaire : Par exemple, la police "Courier New" à l'étonnante particulairité de donner la même largeur à tous les caractères : Comme ceci :
WWWWW
iiiii


Formulaires : Effacement et sélection d'un et de plusieurs champs

Pour effacer un champ, comment faire ?

Faciiiiiiiiiiiile : Il suffit de le sélectionner et d'appuyer sur la touche DELETE . Pour effacer une étiquette. c'est pareil, sauf que quand vous effacez une étiquette, ça efface l'étiquette mais PAS le champ qui va avec, tandis que quand vous effacez un champ, ça efface aussi l'étiquette. Essayez pour voir.

Et si je voulais en effacer plusieurs à la fois ?

Il faudrait les sélectionner à la souris tous en même temps. Pour tester ça, arrangez vous pour avoir les 3 champs Titre, NomClient et Domaine à peu près l'un en-dessous de l'autre, comme ceci : . Maintenant, imaginons que vous vouliez effacer NomClient ET prenom, en même temps : dessinez un rectangle avec la souris comme ceci : . Lorsque vous lâchez la souris, vous devriez avoir des petits carrés noirs autour de NomClient ET AUSSI de prenom : . Maintenant, si vous appuyez sur DEL , les 2 champs s'effacent, ainsi que leurs étiquettes. Essayez !

Je suppose qu'on peut également les déplacer ensemble plutôt que de les supprimer comme ils sont sélectionnés les deux ?!?

Oui, essayez : remettez quelques champs, et essayez d'en déplacer plusieurs à la fois.

Ca marche. Par contre, j'ai essayé de déplacer plusieurs étiquettes à la fois sans les champs, mais je n'y suis pas arrivé !

Non. Ce n'est pas possible.

On ne peut pas ?

Pour l'instant on va dire que non pour ne pas vous noyer dans trop de détails. Essayez par vous-même, et peut-être trouverez-vous l'astuce qui le permet... Je vous laisse voir !

Je vais maintenant vous poser une colle : Comment faire pour sélectionner plusieurs champs qui ne sont pas l'un en dessous de l'autre, comme ceci : Vous voyez : J'ai réussi à sélectionner le nom et le domaine, mais PAS le titre ni le Prénom ?

Ouh... Pas facile !

Voici l'astuce :

  1. Cliquez sur le champ NomClient
  2. Lâchez le bouton de la souris
  3. Appuyez sur SHIFT (Majuscule)
  4. LAISSEZ le doigt appuyé sur cette touche jusqu'à la fin de l'opération !
  5. Cliquez maintenant sur le champ Domaine
  6. Lâchez le SHIFT

Et voilà...

Génial ! Et avec la même astuce, est-ce que je ne pourrais pas directement placer plusieurs champs à la fois depuis la liste des champs jusque dans mon formulaire ?

Oui, et c'est fort pratique. Commencez par effacer tous les champs de votre formulaire, et admettons que vous voulions placer les champs NomClient, Prenom, Domaine et PaysOrigine (De NomClient à PaysOrigine en d'autres mots).

Marche à suivre :

  1. Cliquez sur NomClient dans la liste des champs :
  2. Lâchez le bouton de votre souris
  3. POSTIONNEZ (Pas cliquer !) votre souris sur le champ PaysOrigine
  4. Appuyez sur la touche SHIFT
  5. Ne lâchez PAS cette touche
  6. Cliquez sur PaysOrigine :
  7. LACHEZ la touche SHIFT
  8. POSITIONNEZ (Pas cliquer !) votre souris au milieu des champs devenus bleus :
  9. Cliquez, mais ne lâchez PAS le bouton de votre souris, et faites glisser la série de champs sur votre formulaire :
  10. Les voici, parfaitement alignés :

Et si je voulais mettre plusieurs champs mais qui ne sont pas l'un en dessous de l'autre, comme ceci :

Ce n'est pas extrêmement utile, mais si vous voulez, vous refaites exactement la même marche à suivre que juste avant, mais simplement, vous remplacez la touche SHIFT (Majuscule) par la touche CONTROL (CTRL)

Quittez maintenant ce formulaire, sans l'enregistrer.

Bon... Hem... On peut résumer ?

Les formulaires peuvent se générer plus ou moins automatiquement en passant par les assistants d'Access, mais nous avons vu ici que la création manuelle est plus souple, mais demande un temps d'investigation nettement plus important. Nous avons vu que les champs peuvent se manipuler à volonté, s'agrandir, se rétrécir, s'aligner, se supprimer, enfin bref : Il n'y a quasiment pas de limite. Nous avons vu que les étiquettes sont intimement liées aux champs.

Avez-vous bien compris ?

  1. Les étiquettes
    a. Sont un synonyme de "Champ"
    b. Se placent devant chaque champ (Pour indication) ***
    c. Sont le nom du formulaire

  2. En mode création d'un formulaire
    a. On peut entrer des nouveaux enregistrements, mais pas en supprimer
    b. On peut modifier des enregistrements, mais pas en effacer
    c. On peut ajouter des enregistrements mais pas les modifier
    d. On ne peut ni ajouter, ni supprimer ni modifier les enregistrements ***

  3. Je suis en mode saisie de données, et j'efface l'enregistrement "Georges Brassens"
    a. On ne peut rien effacer en mode saisie de données
    b. Ca effacera Georges Brassens de la table également ***
    c. Ca effacera Georges Brassens du formulaire, mais pas de la table

  4. En mode création d'un formulaire basé sur T_Celebrite, j'efface le champ NomClient
    a. Ca effacera tous les noms de la table sous-jacente
    b. On ne peut pas effacer de champs en mode création
    c. Ca effacera le champ, et également l'étiquette qui se trouve à côté ***
    d. Ca effacera le champ, mais pas l'étiquette qui se trouve à côté

  5. En mode création d'un formulaire basé sur T_Celebrite, j'agrandis le champ "PaysOrigine"
    a. Je peux donc écrire dès maintenant plus de caractères pour chaque pays, dans le formulaire seulement
    b. Je peux donc écrire dès maintenant plus de caractères pour chaque pays, dans le formulaire ET dans la table
    c. Je ne peux pas l'agrandir tant que je n'ai pas augmenté le nombre de caractères autorisés dans la table sous-jacente
    d. Je ne pourrai pas ECRIRE plus de caractères que le maximum autorisé dans la table, mais je pourrais peut-être en VOIR plus à l'écran ***

  6. Peut-on déplacer une étiquette sans déplacer le champ qui qui correspond en mode création d'un formulaire
    a. Oui, en cliquant dessus, et en la déplaçant en utilisant un petit doigt noir en haut à gauche ***
    b. Oui, en cliquant dessus, et en la déplaçant en utilisant une petite main noire noir en haut à gauche
    c. Oui, en double cliquant dessus
    d. Non

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.

Exercice

L'exercice consiste simplement à créer un formulaire dans votre base de données habituelle, basé sur T_Celebrite, qui ressemble le plus possible à ceci (La barre d'outils ou il est écrit Tahoma) n'entre pas en ligne de compte, c'était juste pour vous situer exactement le formulaire sur votre écran:

Je vous le montre en mode saisie de données, sur Georges Brassens (Simplement parce que sa remarque est assez longue, pour justifier le fait de faire son champ assez grand). Enregistrez ensuite ce formulaire sous F_CelebriteExercice

Téléchargez la solution de l'exercice ici (Ce n'est en fait que le ProFormation.MDB tel quu'il devrait être à la fin de cette leçon)

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