Développement d'applications
avec une base de données
Les formulaires avec Access
Module précédent
Rappel
Formulaire = mode d'affichage des données page/page plutôt que ligne/ligne.
Remarque: les formulaires sont basés sur des tables ou sur des requêtes. Lorsqu'on ne trouve pas un champ dans un formulaire, c'est peut-être parce qu'on a basé notre formulaire sur une requête où il manque ce champ.
Les contrôles de formulaires.
Définition
Les contrôles de formulaires = outils pour faciliter
- l'entrée de données (surtout)
- la recherche (parfois)
- la navigation (parfois)
Exemple
Zone de texte = contrôle le plus utilisé (déjà vu dans les formulaires simples)
Zone de liste déroulante et Zone de liste
Contrôles qui permettent à l'usager de choisir parmi une liste limitée.
- La zone de liste
- conserve toujours la même taille
- ne permet pas d'ajouter des données
- La liste déroulante
- utilise moins d'espace et s'agrandit au besoin lors du clic
- peut permettre à l'usager d'entrer une valeur non listée.
Groupe de boutons
Contrôle qui permet à l'usager de choisir parmi une liste limitée. Il offre à l'écran la liste des choix avec une taille fixe (comme une zone de liste) mais est plus intuitif en ajoutant des cercles (boutons-radios) qui indique quel option est sélectionnée.
Case à cocher
Comme un groupe de bouton, mais avec seulement 2 choix (oui/non, vrai/faux, homme/femme)
Sous-formulaire
- Contrôle qui permet d'entrer dans une fiche principale d'un formulaire, une série de fiches secondaires ou reliées à la fiche principale.
- Équivalent en logique à la relation 1 à plusieurs
- Le formulaire principal contient un enregistrement-parent
- le sous-formulaire contient la liste des enfants.
Comment construire un contrôle?
Différence entre contrôle relié et contrôle non relié
Un contrôle peut être
- non relié à une table: on donne une information à l'écran seulement. Exemple: étiquette, contrôle d'onglets
- relié à un champ d'une table: lorsqu'on modifie le contrôle dans le formulaire, Access modifie le champ correspondant dans la table. Exemple: zone de texte, groupe de boutons, liste déroulantes, case à cocher.
Comment relier un contrôle?
Lorsqu'on drague un contrôle dans un formulaire, Access fait apparaître une série de fenêtres qui nous guide pour indiquer quel champ doit être modifié. Il suffit habituellement de répondre aux questions.
Attention: Il y a souvent un délai entre l'utilisation d'un contrôle et la modification de l'enregistrement. Pour vérifier si un contrôle fonctionne bien (i.e. s'il modifie correctement le champ dans une table), il est important de fermer toutes les fenêtres entre chaque étape de l'utilisation ou utiliser le bouton "Actualiser tout".
Comment créer une liste déroulante entre tables reliées (relation 1-N)?
L'utilité d'une liste déroulante est de remplacer une clé externe par un champ plus descriptif. Une clé externe est un champ numérique dans une table-enfant qui représente la clé primaire d'un champ-parent. Comme on ne sait pas par coeur les valeurs des clés primaires:
- on se fait une liste déroulante avec des champs qui décrivent bien le parent;
- puis on laisse Access s'occuper de trouver la clé primaire correspondant au champ descriptif;
- puis on laisse Access s'occuper de recopier la clé primaire dans la clé externe.
La procédure est:
- Draguer la clé externe à déterminer dans le formulaire (voir les les erreurs fréquentes);
- Supprimer le contrôle de texte qu'on vient de créer.
- Créer une liste déroulante.
- Choisir la table-parent qui contient le champ descriptif et la clé primaire;
- Choisir le(s) champ(s) qui décrit bien le parent;
- Les 2 étapes suivantes proposées par Access sont optionnelles.
- IMPORTANT : Choisir de "Stocker la valeur dans ce champ" en choisissant de stocker la valeur dans la clé externe de la table-enfant. Cette étape correspond aux étapes b. et c. de la liste précédente.
Comment créer un sous-formulaire entre tables reliées (relation 1-N)?
L'utilité d'un sous-formulaire est de faire la liste des enfants d'un enregistrement-parent.
La procédure est:
- Faire un formulaire de façon normale en se rappelant qu'il servira plus tard de liste d'enfants.
- Y mettre les champs-enfants qui décrivent bien l'enfant.
- Economiser l'espace au cas où il faudrait lister plusieurs enfants.
- Ajouter puis supprimer le champ de la clé externe.
- Dans Propriétés, choisir Format, puis Affichage par défaut = Formulaire continu.
- Dans le formulaire-parent, faire un contrôle de sous-formulaire.
- Utiliser un formulaire existant en choisissant le formulaire-enfant qu'on vient de créer à l'étape 1.
- Définir la relation entre le formulaire-parent et le formulaire-enfant de la même façon qu'on a fait pour les relations. Il faut répéter le lien entre la clé primaire et la clé externe.
- Donner un nom à la liste.
Comment créer un sous-formulaire entre tables reliées (relation N-N)?
L'utilité d'un sous-formulaire est de faire la liste des enfants d'un enregistrement-parent. Dans les relations N-N, il est important de comprendre que les enfants d'un enregistrement-parent sont dans la table de relations.
La procédure est:
- Faire un formulaire-enfant basé sur la table de relations comme pour les relations 1-N.
- Dans le formulaire-enfant, faire une liste déroulante pour remplacer la 2e clé externe par un champ descriptif de la 2e table de la relation N-N.
- Dans le formulaire-parent, faire un contrôle de sous-formulaire et ajouter le sous-formulaire fabriqué précédemment. Le lien entre le formulaire-parent et le sous-formulaire-enfant est la même que pour les relations entre la table-parent et la table de relations.
Comment choisir entre liste déroulante ou sous-formulaire?
Dans une relation un-à-plusieurs, il est souvent mêlant de choisir entre une liste déroulante ou un sous-formulaire.
Pour savoir lequel utiliser, il faut se rappeler que la relation possède 2 angles:
- Si on est dans le formulaire pour entrer des enfants, il faut se rappeler qu'un enfant ne possède qu'une mère, donc faire une liste déroulante
- la liste contient plusieurs mères disponibles
- le clic n'en choisit qu'une seule
- Si on est dans le formulaire pour entrer des mères, il faut se rappeler qu'une mère possède plusieurs enfants, donc faire un sous-formulaire
- si le sous-formulaire contient tous les champs enfants, on peut autoriser les ajouts
- sinon, il est préférable de le mettre en lecture seulement.
Erreur fréquente à ne pas faire
Une erreur fréquente lors de la création d'un contrôle consiste à oublier de relier le formulaire à un champ.
Relier le formulaire au champ
Draguer puis supprimer
La solution consiste à draguer le champ à relier dans le formulaire. En draguant, Access crée un lien entre le champ et le formulaire. En supprimant, Access n'efface que la zone de texte, pas le lien.
Construire le contrôle
Module Suivant