• Aucun résultat trouvé

Faciliter la saisie avec des listes de valeurs provenant d’une table

Dans le document [pdf] Tutoriel complet Access 2010 (Page 192-199)

Facile à mettre en œuvre, la liste utilisant des valeurs constantes trouve ses limites dès que les données qu’elle renferme nécessitent d’être modifiées ou que certaines d’entre elles doivent être ajoutées ou supprimées : la liste étant figée, une intervention dans la structure de la table devient dans ce cas obligatoire.

L’alternative consiste à utiliser comme source de données de la liste non plus des valeurs fixes, mais les valeurs d’un ou de plusieurs champs d’une table. Ainsi, s’il vient à manquer une valeur sur la liste, il suffira de l’ajouter à la table. Cette opération est accessible à tout opérateur de saisie puisqu’elle ne demande pas de connaissances particulières en matière de bases de données.

Vous allez créer la liste de choix du champ theme de la table Disques, de telle sorte que ses données soient puisées dans la table des thèmes musicaux. Si un nouveau thème vient à apparaître sur le marché, vous n’aurez qu’à l’ajouter dans la table Theme. Nous sup-posons que la table des thèmes musicaux, appelée Theme, est créée dans la base de données Gestion des disques.

Figure 3.64 : Le bouton Plus de champs

1 Reprenez la base Gestion des disques.accdb. Ouvrez la table

Dis-quesen mode Création.

2 Cliquez sur le nom du champ theme. Dans la colonne Type de

donnéesde ce champ, choisissez Assistant Liste de choix dans la liste proposée.

L’Assistant Liste de choix s’affiche.

3 Dans l’Assistant Liste de choix, cochez l’option Je veux que la liste

de choix recherche les valeurs dans une table ou requête. Cliquez sur le bouton Suivant.

L’Assistant Liste de choix affiche toutes les tables de la base de données Gestion des disques, à l’exception de la table Disques qui est la table utilisée.

4 Sélectionnez la table qui contient les données qui seront utilisées

sur la liste de choix, par exemple la table Theme. Cliquez sur le bouton Suivant.

Figure 3.65 : Les données de la liste proviendront d’une table

La liste des champs de la table choisie précédemment s’affiche dans la colonne Champs disponibles de l’Assistant.

5 Cliquez sur le champ contenant les données qui devront être

utilisées sur la liste de la colonne Champs disponibles, ici le champ

nom. Glissez-le dans la colonne Champs sélectionnés en cliquant sur le bouton>. Cliquez sur le bouton Suivant.

Sélectionner tous les champs

Si vous souhaitez glisser tous les champs de la colonne Champs disponi-bles dans la colonne Champs sélectionnés, utilisez le bouton>>.

L’Assistant propose de trier les éléments de la liste dans un ordre croissant ou décroissant.

6 Choisissez dans la première zone le premier champ à trier. Pour

passer d’un tri croissant à un tri décroissant, utilisez le bouton situé à droite de la zone.

Ce bouton, lorsqu’il est activé, affiche consécutivement les libellés

Croissantet Décroissant. Les zones suivantes pourraient être utilisées pour définir des critères de tri secondaires.

7 Cliquez sur le bouton Suivant. Figure 3.67 : La sélection du champ utilisé dans la liste

Les données du champ de la table qui seront utilisées sur la liste de choix (ici les valeurs du champ nom de la table Theme) sont listées dans l’Assistant.

La case à cocher Colonne clé cachée (recommandé) permet d’indiquer si la colonne renfermant les clés primaires de la table utilisée comme source de la liste de choix doit être masquée (cochée) ou affichée (non cochée). Si la table source n’utilise pas de clés primaires, cette case n’est pas proposée à cette étape de l’Assistant.

8 Modifiez éventuellement la largeur de la colonne en étirant son

en-tête vers la droite. Cliquez sur le bouton Suivant. Figure 3.68 : Le choix de l’ordre de présentation des valeurs de la liste

À la dernière étape de l’Assistant, l’étiquette proposée porte le nom du champ contenant la liste de choix.

9 Conservez ce nom. Cliquez sur le bouton Terminer.

Lors de la création de la liste de choix, Access crée une relation entre la table ouverte et la table utilisée pour générer les valeurs de la liste de choix ; dans cet exemple les tables Disques et Theme.

La notion de relation est expliquée au chapitre 4 Contrôler la

co-hérence des données.

L’Assistant Liste de choix demande confirmation de l’enregistrement de la table.

10 Cliquez sur le bouton Oui pour valider l’enregistrement de la table,

nécessaire à la création de la relation et de la liste de choix.

Si le champ contenait des valeurs de type Texte avant la création de la liste de choix, Access vous avertit que le type de données n’est pas approprié et qu’il doit être modifié.

11 Pour continuer, cliquez sur le bouton Oui.

Le type de données du champ a changé : il est maintenant de type

Numérique.

Changement de type du champ

Access change le type du champ sur lequel est appliquée la liste car la clé primaire de la table va y être stockée et que celle-ci est de type numérique.

Vous pouvez maintenant visualiser en mode Création de la table les propriétés du champ modifiées par l’Assistant.

12 Cliquez sur l’onglet Liste de choix.

Les principales propriétés de l’onglet Liste de choix, modifiées par l’Assistant, sont les suivantes :

Afficher le contrôle indique l’utilisation d’une liste de choix. La valeur Zone de liste déroulante y apparaît ;

Origine sourceindique que les données sont issues d’une table ou d’une requête ;

Contenu détermine les éléments de la liste, extraits de la table d’origine, par une requête ;

Les requêtes sont expliquées plus loin dans cet ouvrage au chapi-tre 5 Extraire des données.

Colonne liéeindique, dans le cas d’une liste à plusieurs colonnes, dans quelle colonne de la liste de choix la valeur stockée dans le champ doit être puisée. La colonne utilisée est généralement la clé primaire de la table source ;

Largeur de colonnepermet de déterminer les largeurs des colon-nes de la liste. La valeur 0 permet de masquer ici la première colonne, qui contient la clé primaire.

13 Pour visualiser la liste de choix en mode Feuille de données,

utilisez le bouton Affichage de l’onglet Création.

Figure 3.71 : Les propriétés de la liste de choix

Figure 3.72 : Le test de la liste de choix, en mode Feuille de données

Le bouton Modifier les recherches

En mode Création, le bouton Modifier les recherches du groupe Outils de l’onglet Création offre une autre méthode pour créer un nouveau champ utilisant une liste de choix.

3.5. Appliquer des règles de validation

Les règles de validation des champs jouent un rôle prépondérant dans l’optimisation de l’application et doivent être définies au niveau des tables. Elles permettent de formater les champs afin de les préparer à recevoir les données. Vous verrez plus loin qu’il est pos-sible d’appliquer ces règles lors de la saisie des données dans les formulaires, qui sont des outils de capture et de présentation des informations. Toutefois, le formatage des données au niveau des formulaires, et non au niveau des tables, est extrêmement dange-reux. En effet, vous pouvez accéder à une table depuis plusieurs formulaires. Imaginez qu’un champ de cette table ne doive en aucun cas être vide, ce champ devant contenir un numéro de sécurité sociale par exemple. Si vous n’avez pas verrouillé les champs au niveau de la table par des règles de validation, il vous suffit d’oublier d’empêcher la saisie d’une chaîne vide dans un formulaire pour qu’une porte soit ouverte aux erreurs. Ces erreurs peuvent avoir des conséquences dramatiques sur la suite des traitements.

La définition des règles de validation au niveau des formulaires augmente le temps de développement de l’application, puisque le traitement doit être répété dans chaque formulaire. Elles ne doivent donc être utilisées que dans des cas bien particuliers, pour ajouter une "surrègle". Voici un exemple :

Une table contient un champ de type date. Les dates saisies dans ce champ doivent être comprises entre la date de création de l’entre-prise (le 01/01/2006) et la date de cessation d’activité de l’entrel’entre-prise (qui a été fixée au 31/12/2056). Les règles de validation qui empê-chent la saisie d’une date en dehors de ces limites doivent être définies une fois pour toutes au niveau de la table afin de la protéger pendant toute sa durée de vie (50 ans). Quelles que soient les évolu-tions apportées à l’application pendant la période d’activité, le

Figure 3.73 : Le bouton Modifier les recherches

concepteur de la base de données est certain que les données conte-nues dans ce champ conserveront leur intégrité initiale. En revanche, il est facile d’imaginer un formulaire utilisé pour la saisie des don-nées pendant une année comptable (du 01/01/2006 au 31/12/2006 par exemple). Ce formulaire pourra alors appliquer des règles de valida-tion du champ pour empêcher la saisie de dates en dehors des dates de début et de fin de l’exercice en cours. Dans ce cas, le formulaire aura été utilisé pour ajouter des "surrègles" aux règles déjà définies dans la table afin de répondre à une situation particulière.

La mise en œuvre des règles de validation s’effectue au moyen de la propriété Valide si, présente à la fois dans les champs et dans les tables, et de la propriété Message si erreur, complémentaire à la première.

Dans le document [pdf] Tutoriel complet Access 2010 (Page 192-199)