Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Les formulaires de base de données
Le
formulaire est
l'outil de saisie, consultation, modification et suppression des données dans
Access . Les
tables servent à l'ossature et à la construction de la base. Elles ne doivent pas être utilisées pour la manipulation des données. La mise en forme des
formulaires doit être soignée et explicite. Leur utilisation doit être ergonomique. Nous allons découvrir les
formulaires en nous appuyant sur une petite
base de données en construisant un formulaire simple, sur une simple table.
Télécharger la base de données facturation-formulaires.accdb en cliquant sur ce lien ,
L'ouvrir dans Access ,
Cliquer sur le bouton de sécurité Activer le contenu sous le ruban,
Il s'agit d'une petite
base de données de facturation constituée de deux
tables . Une
table Clients qui recense les clients qui ont passé des commandes. Ces commandes sont listées dans la
table Commandes . Au fur et à mesure des évolutions, Access a considérablement simplifié la création des
formulaires .
Sélectionner la table Commandes dans la liste des objets du volet de gauche,
Cliquer sur l'onglet Créer pour activer son ruban,
Cliquer ensuite sur le bouton Formulaire ,
Sans aucune étape intermédiaire, la
table Commandes ayant été présélectionnée,
Access construit et livre le
formulaire des commandes instantanément. Tous les champs de la table sont inclus par défaut dans l'ordre de leur création lors de la conception de la
table Commandes . Ils récupèrent de même toutes les propriétés définies en Amont. Ainsi le
champ Commandes_total possède un
format monétaire Euros et le
champ Commandes_date est doté d'un
masque de saisie . Vous remarquez de même que le
ruban Création s'active automatiquement. Il propose tous les outils pour personnaliser un
formulaire dont les contrôles parmi lesquels on trouve les listes déroulantes et les boutons.
Enfoncer les touches CTRL + S pour sauvegarder ce formulaire,
Dans la petite boîte de dialogue, le nommer formulaires_Commandes et cliquer sur Ok,
Vous remarquez qu'il apparaît désormais dans le volet de gauche de la liste des objets
Access sous l'entête
Formulaires . Ce formulaire permet donc de consulter les commandes des clients et de les modifier. Mais il permet aussi d'en créer. Le
formulaire est l'outil de saisie contrairement à la table. A ce titre, nous allons créer une nouvelle commande pour un client qui n'en a pas encore passée. Si vous ouvrez la
table Commandes en mode Feuille de données, vous constaterez que le client 10 n'a jamais rien acheté. Le client 10 dans la
table Clients correspond à Mlle Yginal.
Dans le ruban Accueil, cliquer sur la flèche du bouton Affichage ,
Puis cliquer sur mode Formulaire ,
Vous affichez ainsi le formulaire en mode exécution, en
mode saisie .
En bas de la fenêtre, vous trouvez la barre qui permet de naviguer au travers des
enregistrements , soit des commandes. Vous pouvez passer au suivant, au précédent, au premier et au dernier. Mais vous pouvez aussi créer un nouvel
enregistrement , soit une nouvelle commande.
Cliquer sur le bouton à droite, Nouvel enregistrement (vide) ,
Le
champ Commandes_num est la
clé primaire en
numéro auto , il ne doit et ne peut être saisi.
Taper 10 dans le champ Commandes_client ,
Taper 115,50 dans le champ Commandes_total ,
Taper la date dans le champ Commandes_date ,
Si vous validez cette dernière saisie à l'aide de la touche Tabulation, vous passez directement au prochain enregistrement vide, soit à la création d'une nouvelle commande.
Revenir au premier enregistrement à l'aide des boutons de navigation en bas de la fenêtre,
Dans le volet de gauche, double cliquer sur la table Commandes pour l'afficher en mode Feuille de données ,
Vous notez bien la présence de la commande attribuée au Client 10, saisie depuis le
formulaire Commandes .
Fermer la table Commandes en cliquant sur la croix de son onglet,
Revenir sur le formulaire formulaire_Commandes ,
Cliquer sur la flèche du bouton Affichage du ruban Accueil ,
Dans la liste, cliquer sur mode Création ,
Nous basculons ainsi dans le mode où nous pouvons personnaliser et paramétrer le formulaire à souhait.
Dans la zone En-tête de formulaire, cliquer sur l'étiquette Commandes ,
Cette étiquette reprend le nom de la table.
Enfoncer la touche F2 du clavier pour activer la saisie,
Changer ce titre en Commandes des clients ,
Cliquer sur un endroit vide du formulaire pour désélectionner ce contrôle,
Propriétés des contrôles de formulaire
Comme le total de la commande est l'information la plus importante, nous souhaitons la faire ressortir.
Sélectionner la zone de texte Commandes_total ,
Cliquer sur le bouton Feuille de propriétés du ruban Création ,
Vous affichez ainsi la
feuille de propriétés du contrôle sélectionné.
Cliquer sur l'onglet Format pour afficher les propriétés de mise en forme,
Régler la taille de la police à 12 ,
Régler l'épaisseur de la police sur gras ,
Si vous basculez en mode formulaire, vous constaterez que l'information est effectivement plus évidente. Comme l'information Commandes_num est un numéro automatique attribué par Access, son information est inutile pour l'utilisateur.
En mode création, sélectionner la zone de texte Commandes_num ,
Enfoncer la touche Suppr du clavier,
La zone de texte et son étiquette disparaissent. Du coup nous allons combler l'espace vide en haut du formulaire.
Cliquer sur la zone de texte Commandes_client pour la sélectionner,
En maintenant la touche MAJ enfoncée, cliquer sur les zones de texte Commandes_total et Commandes_date ,
Les trois contrôles sont ainsi sélectionnés ensemble.
Les cliquer et les glisser avec la souris pour les repositionner un peu plus haut,
Comme ils sont trop larges par rapport aux informations qu'ils affichent, nous allons réduire leur taille. Pour ce faire, les trois
zones de texte étant toujours sélectionnées :
Placer le curseur de la souris sur l'extrémité droite des contrôles jusqu'à ce qu'il se transforme en une double flèche,
Cliquer et glisser vers la gauche de manière à réduire leur taille,
Afficher le résultat en mode Formulaire ,
Le rendu est effectivement plus adapté et nous avons désormais de la place à exploiter sur la droite.
Revenir en mode création ,
Boutons de navigation
La navigation au travers des
enregistrements est peu ergonomique avec les petits boutons situés en bas de la fenêtre. Nous allons donc ajouter des boutons de déplacements directement sur le
formulaire . Ils seront plus évidents et plus ergonomiques à utiliser. Vous allez constater à quel point Access simplifie leur implantation.
Cliquer sur le contrôle Bouton du ruban Création pour le sélectionner,
Tracer un rectangle sur la droite du formulaire pour le dessiner,
Dans la boîte de dialogue qui s'affiche, sélectionner la catégorie Déplacements entre enreg. sur la gauche,
Sélectionner l'action Premier enregistrement sur la droite,
Cliquer sur Suivant ,
Choisir l'image Atteindre premier ,
Nommer le bouton premier et cliquer sur Terminer ,
De la même façon, créer le bouton pour atteindre le dernier enregistrement ,
Créer le bouton pour passer à l'enregistrement suivant ,
Créer le bouton pour revenir à l'enregistrement précédent ,
Pour le bouton qui consiste à créer un nouvel enregistrement, la catégorie change,
Sélectionner le contrôle bouton dans le ruban Création ,
Tracer un rectangle sur le formulaire pour le dessiner,
Dans la boîte de dialogue, sélectionner la catégorie Opérations sur enreg. ,
Puis choisir l'action Ajouter un nouvel enregistrement ,
Cliquer sur Suivant ,
Choisir l'image Atteindre nouveau ,
Cliquer sur Suivant ,
Le nommer nouveau et cliquer sur Terminer ,
Aligner et espacer les contrôles sur le formulaire
Tel que vous avez tracé les boutons, ceux-ci ne sont sans doute pas très alignés et encore moins espacés de façon équivalente.
Access propose des fonctionnalités, empruntées à Powerpoint qui permettent de réaliser ces opérations avec précision sans avoir besoin d'ajuster minutieusement les contrôles à la souris.
Sélectionner ensemble les 5 boutons à l'aide de la touche MAJ et de la souris,
Cliquer sur l'onglet Organiser ,
Dans le ruban, cliquer sur la flèche du bouton Aligner ,
Dans la liste, cliquer sur Haut ,
Tous les boutons s'alignent sur la même horizontale. Le bouton le plus haut sert de repère.
Cliquer maintenant sur la flèche du bouton Taille/Espace ,
Dans la liste, cliquer sur Horizontal équilibré ,
Les deux boutons aux extrémités servent de repère de manière à ce que les espaces entre tous soient calculés en fonction de la largeur induite.
Si vous basculez en
mode formulaire , en cliquant sur les différents boutons, vous pourrez constater que chacun d'entre eux fonctionne parfaitement. De plus, étant positionnés en évidence, ils sont plus pratiques que les boutons proposés par défaut.
Fermer le formulaire en cliquant sur la croix de son onglet.
Formulaire avec sous-formulaire
Le
formulaire Commandes que nous avons exploité jusqu'alors est peu satisfaisant sauf pour les manipulations d'apprentissage que nous avions à y faire. En effet il propose une vue des commandes seules, sans avoir de visibilité sur les clients qui passent ces commandes. C'est pourquoi nous allons construire un formulaire qui présente une vue des clients, et pour chacun d'entre eux, dans un sous-formulaire, la synthèse de ses commandes. Autrefois dans
Access , il fallait passer par un assistant, sélectionner les
tables et leurs
champs tour à tour et suivre les étapes. Désormais, dès lors que les
tables sont reliées par une
clé primaire et une
clé externe ,
Access comprend la construction sur la base de la
table parent et livre le résultat instantanément. Illustration :
Sélectionner la table Clients dans la liste des objets Access du volet gauche,
Dans le ruban Créer ,cliquer sur le bouton Formulaire ,
Access livre une vue du client dans la partie supérieure du
formulaire et une vue de ses commandes liées dans la partie inférieure sous forme de
sous-formulaire en
feuille de données .
Afficher le formulaire en mode création ,
Comme toute à l'heure, sélectionner toutes les zones de texte du formulaire Clients à l'aide de la touche MAJ et de la souris,
Placer la souris sur l'extrémité droite, au niveau des poignées, de sorte que le curseur de la souris se transforme en une double flèche,
Cliquer et glisser vers la gauche de manière à réduire leur taille,
Comme vous le remarquez, bien que le
sous formulaire ne soit pas sélectionné, il est associé avec les autres contrôles et subit la même transformation, ce que nous ne souhaitions pas. D'ailleurs, si vous le sélectionnez indépendamment et que vous tentez de l'étirer, vous remarquez que toutes les
zones de texte du
formulaire Clients s'étirent aussi. Pour pallier le problème, nous devons le dissocier des autres.
Sélectionner le sous-formulaire ,
Cliquer sur l'onglet Organiser ,
Dans le ruban, cliquer sur le bouton Supprimer la disposition ,
Etirer le sous-formulaire sur la droite pour l'agrandir,
Cette fois vous parvenez à le redimensionner seul.
Enregistrer le formulaire (CTRL + S ) sous le nom Clients_et_commandes ,
L'afficher en mode Formulaire ,
Maintenant que nous avons créé de l'espace, nous allons ajouter les boutons de déplacements comme précédemment. Et nous allons en profiter pour en ajouter d'autres comme
Rechercher un enregistrement ou
Supprimer un enregistrement de manière à ce que tout puisse se faire depuis le
formulaire Clients_et_commandes .
Afficher le formulaire en mode création ,
Créer les 5 boutons (premier, précédent, suivant, dernier, nouveau) comme vous l'avez fait pour le formulaire Commandes ,
Les aligner et disposer à l'aide des boutons de l'onglet Organiser ,
Rechercher un enregistrement
Nous souhaitons maintenant un bouton particulier. Nous souhaitons que ce bouton soit capable d'afficher directement le
formulaire sur le nom d'un client saisi dans une boîte de dialogue.
Afficher le formulaire en mode création ,
Tracer un nouveau bouton sur la zone de formulaire ,
Dans la boîte de dialogue, choisir la catégorie Déplacements entre enreg. ,
Puis sélectionner l'action Rechercher un enregistrement ,
Cliquer sur le bouton Suivant ,
Choisir l'image Jumelles ,
Cliquer sur le bouton Suivant ,
Le nommer Recherche_client et cliquer sur Terminer ,
Basculer en mode Formulaire ,
Cliquer sur le nouveau bouton aux jumelles ,
Dans la zone Rechercher de la boîte de dialogue, taper un nom de client comme Douch par exemple,
Puis cliquer sur le bouton Suivant.
Le formulaire se cale sur le client demandé ce qui s'avère très pratique lorsque l'on souhaite atteindre des informations précises instantanément.
Nous pourrions aussi ajouter un bouton pour supprimer un enregistrement. La catégorie
Déplacements entre enreg. propose une action pour
supprimer un enregistrement . Un clic sur ce bouton supprimerait le client obsolète et toutes les commandes qui lui sont rattachées. En effet, les tables sont reliées entre elles par le jeu des
relations Access . Et l'option
Supprimer en cascade avait été désignée, si bien que toute suppression dans la
table Clients , induit la suppression des
enregistrements qui lui sont liés dans la
table Commandes .
Macros
L'exemple précédent pour isoler rapidement un client sur son nom est intéressant mais pas totalement satisfaisant. Nous utilisons en effet la boîte de dialogue commune de recherche qui reste au premier plan et qui nécessite de la fermer. Nous allons étudier un autre exemple à l'aide des
macros pour définir un
filtre . Ce filtre nécessitera ce qu'on appelle une
clause WHERE pour déterminer sur quel
critère on filtre les
enregistrements . Ce
critère devra être posé sur le
champ Clients_nom et devra déterminer quel est le nom du client au moment où on lui demande, comme une
requête paramétrée .
Tracer un bouton sur la zone de formulaire,
Fermer directement la boîte de dialogue en cliquant sur le bouton Annuler.
Cette action requiert des personnalisations qui ne sont pas proposées dans les fonctions de base des boutons par défaut.
Dans la feuille de propriétés de ce bouton, activer l'onglet Evénement ,
Cliquer sur le petit bouton à trois points à l'extrémité de la zone de l'événement Sur clic ,
Dans la boîte de dialogue qui apparaît, sélectionner générateur de macro et cliquer sur Ok,
Nous basculons ainsi dans l'éditeur de
macro .
A l'aide de la liste déroulante, sélectionner l'action Définir Filtre ,
Saisir un nom de filtre comme choix_client dans la zone Nom du filtre ,
Dans la zone Condition Where , taper [Clients_nom]=[Nom duclient ?] ,
Nous posons la condition sur le champ
[Clients_nom] et nous souhaitons qu'il soit égal à une valeur qui sera déterminée au moment de la demande. C'est pourquoi, entre crochets pour désigner un paramètre, nous saisissons une question pour l'utilisateur
[Nom du client ?] . Comme Access ne connaît pas ce paramètre, il demandera de le préciser au moment de l'exécution.
Conserver la zone Nom du contrôle vide, cela permet de désigner le formulaire actif,
Enregistrer cette macro (CTRL + S ),
Fermer la macro en cliquant sur la croix de son onglet,
Nous sommes de retour sur le formulaire. La macro est bien attachée au bouton sur l'événement Sur clic. Elle doit donc se déclencher au moment où l'utilisateur clique sur le bouton. Le bouton étant toujours sélectionné :
Cliquer sur l'onglet Format de sa feuille de Propriétés ,
Attribuer un texte explicite à sa propriété Légende comme Rechercher client ,
Exécuter le formulaire en mode Formulaire ,
Cliquer sur le nouveau bouton,
Une boîte de dialogue avec le message personnalisé de la
macro s'affiche. Il s'agit du fameux paramètre inconnu qu'
Access demande de préciser.
Taper un nom de client comme Douch et valider,
La boîte de dialogue disparaît et le
formulaire isole instantanément le client demandé avec ses commandes. Si vous recliquez sur le bouton, vous pouvez rechercher un autre client par son nom. Cette fonctionnalité est donc très pratique et efficace pour accéder à l'information utile. Si vous souhaitez retourner à l'ensemble des enregistrements, vous pouvez cliquer sur le bouton
filtré , en bas, sur la petite barre de navigation. Une autre possibilité consiste à associer une
macro pour supprimer le filtre, Ã un nouveau bouton. Pour parfaire notre
formulaire , nous allons régler une dernière
propriété . Comme nous avons placé des boutons de navigation entre
enregistrements , nous n'avons plus besoin des petits boutons de navigation en bas de la fenêtre.
Afficher le formulaire en mode création ,
Cliquer sur son angle supérieur gauche, à l'intersection des règles.
Cette action permet de sélectionner le
formulaire tout entier.
Dans sa feuille de propriétés , activer l'onglet Format ,
Régler sa propriété Boutons de déplacement sur Non ,
Enregistrer le formulaire (CTRL + S ),
L'afficher en mode Formulaire ,
Les boutons de navigation du bas ont en effet disparu.