Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Aides à la saisie et formatage dans les tables Access
Ici nous abordons les techniques
Access qui permettent, en
création de table , d'aider à la saisie ainsi que de formater pour homogénéiser les données. Nous verrons de même que nous pouvons restreindre la saisie avec des listes déroulantes et interdire certains caractères pour éviter les erreurs. Nous allons récupérer une petite
base de données pour réaliser les manipulations :
Télécharger la base de données debuter.accdb en cliquant sur ce lien ,
L'ouvrir dans Access ,
Cliquer sur le bouton Activer le contenu si l'avertissement de sécurité se déclenche,
Il s'agit d'une petite
base de données de facturation, en cours de création. Elle est constituée de deux
tables :
Clients et
Commandes . Ces deux
tables sont
reliées entre elles avec l'
intégrité référentielle pour la correspondance entre les commandes et les clients.
Dans le volet de gauche, cliquer avec le bouton droit de la souris sur la table Clients ,
Dans le menu contextuel, cliquer sur Mode création ,
Nous basculons ainsi dans la vue qui permet la création et le paramétrage des
champs de la
table .
Formatage des champs
Nous souhaitons que les noms des clients soient toujours affichés en majuscules. Ainsi nous homogénéiserons l'apparence des données. Pour ce faire :
Sélectionner le champ clients_nom ,
Dans l'onglet général en bas de la fenêtre, taper le symbole > dans sa propriété Format ,
Enregistrer cette modification (CTRL + S ),
Cliquer sur le bouton Affichage en haut à gauche dans le ruban Accueil ,
Vous basculez ainsi en mode feuille de données, soit la saisie dans la
table .
Créer un nouvel enregistrement en tapant volontairement le nom du client en minuscules,
Dès lors que vous enfoncez la touche
tabulation , vous remarquez que votre saisie se formate automatiquement en
majuscules . Nous souhaitons la même contrainte de mise en forme sur le
champ clients_ville .
Cliquer de nouveau sur le bouton Affichage pour revenir en mode création ,
Sélectionner le champ clients_ville et lui attribuer un format majuscules ,
Sauvegarder (CTRL + S ) et revenir en mode saisie de données,
Vous constatez que toutes les villes sont désormais formatées en majuscules.
Fermer la table Clients et ouvrir la table Commandes en mode création ,
Nous souhaitons désormais que les montants des commandes s'affichent en Euro. Il s'agit de nouveau d'un format.
Sélectionner le champ Commandes_total ,
Régler le format sur Monétaire comme l'illustre la figure ci-dessous,
Enregistrer ces modifications,
Basculer en mode saisie,
Vous remarquez entre autres que tous les montants sont bien formatés dans la devise choisie. Maintenant, nous souhaitons pour le champ prénom, que la première lettre soit en majuscule et les suivantes en minuscules. Il ne s'agit plus d'un format. En effet un format agit unilatéralement sur l'ensemble du champ. Il s'agit désormais d'un
masque de saisie . Un masque de saisie guide l'utilisateur ou précise sur chacun des caractères tapés, ce qui est attendu.
Les masques de saisie
Fermer la table Commandes et ouvrir la table Clients en mode création ,
Sélectionner le champ clients_prenom ,
Celui-ci est dimensionné à 25 caractères. Nous devons donc construire un
masque de saisie qui indique quels sont les caractères attendus sur une longueur totale de 25.
Cliquer dans la Propriété Masque de saisie dans l'onglet Général ,
Taper le masque suivant : >?<???????????????????????? ,
Le point d'interrogation signifie que le caractère attendu est inconnu et qu'aucune restriction n'est posée dessus. Le premier est précédé du symbole supérieur. Il est donc contraint en majuscule. Les 24 suivants sont précédés du symbole inférieur, ils sont donc contraints en minuscules.
Enregistrer cette modification et basculer en mode feuille de données ,
Ajouter un nouvel enregistrement et saisir en majuscules ou minuscules le prénom,
Dans le champ prénom, vous notez la présence d'une ligne guide matérialisant le
masque de saisie . Que vous soyez en majuscules ou en minuscules, la saisie est forcée telle que nous l'avons décidée. Désormais, pour la date, nous souhaitons indiquer que nous voulons une saisie du type 12/12/2016. Le symbole d'un masque de saisie qui n'autorise que des chiffres est le 0.
Basculer de nouveau en mode création ,
Sélectionner le champ clients_dateN ,
Dans son masque de saisie, taper 00/00/0000 ,
Sauvegarder et basculer en mode Feuille de données ,
Taper un nouvel enregistrement,
Au moment de débuter la saisie de la date, vous voyez un guide apparaître. La saisie de lettres n'est pas autorisée. Vous ne pouvez pas dépasser le nombre prescrit par le masque. Et des slash (/) apparaissent pour délimiter les jours des mois et de l'année.
Occupons-nous maintenant du champ
clients_cp . Un code postal est nécessairement composé de 5 chiffres, ni un de plus, ni un de moins. Nous avons vu que le
0 dans un masque, impose la saisie d'un chiffre.
Basculer de nouveau en mode création ,
Sélectionner le champ clients_cp ,
Dans son masque de saisie , saisir le code suivant : 00000 , soit 5 chiffres imposés,
Enregistrer et tester en mode Feuille de données ,
Vous ne pouvez pas saisir de lettres. Vous ne pouvez saisir ni moins de 5 chiffres ni plus. Petit à petit nous construisons l'ossature de notre BD avec des règles de saisie et formats précieux.
Attribuer le masque de saisie 00/00/0000 au champ Commandes_date de la table Commandes,
Les listes de choix
Nous souhaitons ajouter un
champ pour la civilité du client et proposer à l'utilisateur de choisir la civilité dans une
liste déroulante .
Ouvrir la table Clients en mode création ,
Cliquer avec le bouton droit de la souris sur l'étiquette de ligne du champ clients_nom ,
Dans le menu contextuel, cliquer sur Insérer des lignes ,
Nommer ce nouveau champ clients_civilite ,
Dans la zone Type de données , choisir Assistant liste de choix ,
Dans la boîte de dialogue, cocher la case Je taperai les valeurs souhaitées et cliquer sur Suivant ,
Dans l'étape qui suit, taper les trois valeurs Mme , Mlle et Mr ,
Cliquer sur Suivant ,
Dans la dernière étape, conserver le nom d'étiquette proposé par défaut et cliquer sur Terminer,
CTRL + S pour sauvegarder,
Afficher la table Clients en mode Feuille de données ,
Remplir le champ clients_civilite de chaque enregistrement à l'aide de la liste déroulante ,
Comme vous le constatez la liste est parfaitement fonctionnelle. Cependant, si vous tapez autre chose que les choix proposés, Access n'émet aucune opposition. Or nous aimerions que la saisie de ce champ soit limitée à ces propositions.
Basculer en mode création ,
En bas de la page, cliquer sur l'onglet Liste de choix ,
Fixer la propriété Limiter à liste sur Oui ,
Ainsi, toute saisie qui ne correspond pas aux choix proposés sera refusée. Dans cet onglet, vous notez la présence d'autres informations. Ainsi la propriété
Contenu rappelle les éléments de la liste de choix. Elle permet de la modifier manuellement. En ajoutant un point-virgule, vous pourriez très bien ajouter une valeur à cette liste.
CTRL + S pour sauvegarder,
Basculer en mode Feuille de données ,
Dans le champ clients_civilite, tenter de saisir une valeur différente des choix de la liste,
Cette fois un message s'affiche. Access ne vous y autorise plus. Pour terminer avec ces listes de choix, souvenez-vous qu'
Access vous proposait aussi de construire la liste sur des valeurs existantes. Dans ce cas, il aurait suffi de désigner la table source et sur cette table, le champ contenant les valeurs à restituer.
Les autres propriétés de champ
Pour parfaire la construction de notre petite
base de données et nous assurer que nous guidons suffisamment les utilisateurs, nous allons définir d'autres
propriétés . Ainsi dans certains cas, nous allons imposer la saisie et dans d'autres apposer des
règles de validité . Par exemple, le champ
clients_nom de la table
Clients doit impérativement être renseigné. Une cellule vide ne doit pas être autorisée.
Afficher la table Clients en mode création ,
Fixer sa propriété Null interdit sur Oui ,
Si un message sur l'intégritéréférentielle s'affiche, cliquer sur Oui,
Enregistrer les modifications (CTRL + S ),
Basculer en mode saisie,
Taper un nouveau client sans remplir le champ clients_nom ,
Valider en passant sur un nouvel enregistrement,
Access vous empêche de valider ce nouvel
enregistrement tant que vous n'avez pas corrigé le problème en renseignant le nom. Par contre cette règle n'est pas rétroactive puisqu'elle n'intervient pas sur les
enregistrements qui ont été créés en amont. Il est donc impératif de bien penser la construction de ses
tables et de leurs
champs dès le départ. Nous souhaitons maintenant sécuriser la saisie du champ
commandes_total . La valeur doit nécessairement y être positive. Nous ne voulons pas de montants nuls.
Afficher la table Commandes en mode création ,
Sélectionner le champ Commandes_total ,
Régler la valeur de la propriété Valide si sur >0 ,
Notre règle est très claire. La saisie dans ce champ sera considérée comme valide si le montant tapé est bien un nombre plus grand que 0.
Taper un texte informatif dans la propriété Message si erreur du dessous,
Il s'agit du message qui se déclenchera suite à la saisie de l'utilisateur si celle-ci est erronée. C'est donc un moyen supplémentaire pour l'aider.
Enregistrer les modifications (CTRL + S ),
Afficher la table Commandes en mode Feuille de données ,
Saisir une nouvelle commande avec un montant égal à 0,
Attention de bien affecter cette commande à un client existant (Clients_num existant). Sinon l'
intégrité référentielle se déclenchera comme nous l'avons déjà vu.
Votre message personnalisé se déclenche bien. Tant que le problème n'est pas corrigé,
Access refuse de valider le nouvel
enregistrement .
Cliquer sur Ok,
Attribuer un montant positif à cette nouvelle commande,
Valider l'enregistrement.
Cette fois
Access le crée.
La propriété Indexé
Lorsque des
champs sont
indexés , la vitesse d'accès à ces données est augmentée. Seuls les
champs importants doivent être
indexés . Si vous les indexez tous, vous produisez l'effet inverse, les performances de la
base de données se détériorent. Une clé primaire est indexée par défaut. Si vous ouvrez la
table Clients en mode création, vous constaterez que le champ
Clients_num a pour valeur
Oui - Sans doublons . Une clé primaire est unique, l'ordre de tri commence par elle. Si votre base de données est volumineuse et que vous avez besoin de retrouver rapidement un client par son nom, vous indexerez ce champ :
Ouvrir la table Clients en mode création ,
Sélectionner le champ clients_nom ,
Régler sa propriété Indexé sur Oui - Avec doublons ,
En effet les homonymes existent, les doublons sont autorisés dans ce
champ .
CTRL + S pour sauvegarder,
Lorsque la recherche sur un
index conduit à des doublons et que vous souhaitez affiner la recherche, vous pouvez créer un
index multi-champ pour améliorer les performances de la recherche au moment opportun. Par exemple, pour affiner la recherche sur le nom, la ville permettrait d'éliminer rapidement les clients qui ne correspondent pas à la demande. Pour ce faire :
Dans la section Afficher/Masquer du ruban Création , cliquer sur le bouton Index ,
En dessous du champ clients_nom , choisir le champ clients_ville ,
Conserver le tri Croissant ,
Fermer la boîte de dialogue,
Sauvegarder ces modifications (CTRL + S ).
L'effet de ces modifications sera notable lorsque nous aurons fait grossir notre
base de données et que nous commencerons à exécuter des
requêtes sur les données. Nous y reviendrons donc.