• Aucun résultat trouvé

PIÈCES JOINTES-ATTACHMENT

4.4.4 Masques de saisie

Par la suite, lorsque l'on précise qu'une entrée est obligatoire, cela signifie que si rien n'est saisi à l'endroit défini par le symbole donné, alors MS Access retourne un message d'erreur à l'écran.

Voici le code propre aux masques de saisie pour MS Access (ces codes peuvent se retrouver dans l'aide d'Access très facilement) qu'il est recommandé d'utiliser que dans des champs de type Texte ou Date (à moins que l'on souhaite se compliquer la vie!!!):

0 Chiffre (0 à 9, entrée obligatoire d'un chiffre, signes (+) et moins (-) non acceptés).

9 Chiffre ou espace (entrée facultative, signes plus et moins non acceptés).

& Caractère générique pour une lettre ou un espace

# Chiffre ou espace (entrée facultative, positions vierges converties en espaces en mode

édition, mais les espaces sont effacés lors de la sauvegarde des données, signes plus et moins acceptés).

L Lettre (A à Z minuscule ou majuscule, entrée obligatoire d'une lettre).

? Caractère quelconque ou espace (entrée obligatoire).

C Caractère quelconque ou espace (entrée facultative).

. ,: ; - / Séparateur de décimales, de milliers, de date et d'heure (à loisir…)

A Lettre ou chiffre (entrée obligatoire d'une lettre ou d'un chiffre).

Attention le nombre de A ne limitera cependant pas la taille d'un chiffre si le champ est de type Numérique. De plus vous aurez des surprises si vous utiliser les maques avec les réels simples.

a Lettre ou chiffre (entrée facultative).

Attention le nombre de A ne limitera cependant pas la taille d'un chiffre si le champ est de type Numérique. De plus vous aurez des surprises si vous utiliser les maques avec les réels simples.

< Tous les caractères qui suivent sont transformés en minuscules

> Tous les caractères qui suivent sont transformés en majuscules

Tableau 3 Codes pour masque de saisie

Remarque: Si vous affectez à la propriété Masque de Saisie la valeur "Mot de passe", vous créez une zone de texte permettant de saisir un mot de passe. Tous les caractères tapés dans la zone sont enregistrés mais remplacés à l'écran par un astérisque (*). Vous utilisez le masque de saisie Mot de passe pour empêcher l'affichage des caractères tapés.

Exemples:

>L????L?0005L0  VERTEVE339M3

 MAI R 452B7

>LL00000-0000  DB51392-0493

Sous forme finale:

Tableau 4 Codes de masque de saisie types

Définition du masque Avant saisie Exemple de saisie 00\ 00\ 00\ 00\ 00;0;_ __ __ __ __ __ 01 23 45 67 89

LLL"--"??;;@ @@@--@@ aze--r

\(000") "000\-0000;1;* (***) ***-**** (206) 555-0248

>L<CCCCCCCCCCCCCCC __________________ Jean-claude sohm

"ISBN "0\-&&&&&&&&&\-0 "ISBN "_-____________-_ ISBN 5-126795111-8

#### ____ -26

+41(0)00\/000.00.00 +41(_)__/___.__.__ +41(0)76/329.53.88 Spécifications sur les masques de saisie, en considérant l'exemple:

\(000") "000\-0000;1;*

le "1" après le premier ";" signifie" qu'il faudra stocker dans la table seulement les données saisies (alors que la valeur "0" permet d'indiquer de stocker tous les caractères visibles). La valeur après le deuxième ";" représente le caractère utilisé pour représenter l'espace réservé à chaque caractère à saisir.

La principale différence entre la définition d'un style de saisie dans le champ "format" ou dans le "masque de saisie" est la suivante:

Si vous définissez un style dans le champ "Format", alors la saisie sera adaptée lorsqu'elle sera insérée dans la table et non pas au moment même de la saisie dans le formulaire correspondant (ce qui est le rôle du masque de saisie).

Remarque:

R1. Les données du masque, bien qu'elles apparaissent dans les tables, ne s'y trouvent pas physiquement. Ainsi, si vous exportez une table avec un masque vers MS Excel, vous perdrez tous les caractères du masque.

R2. Ces options peuvent être définies aussi sur des champs de formulaires en allant dans les propriétés de ceux-ci.

4.4.5 Validation (Valide Si)

Les options "Valide Si" et "Message si erreur", ont pour fonction d'afficher un message d'erreur personnalisé si le champ saisi ne correspond pas à des données ayant été définies par des relations d'ordre (ce qui n'est pas toujours possible) ou dans un langage plus commun: par des critères.

Voici quelques exemples:

1. N'autorise que la saisie d'une valeur supérieure à 5:

>=5

2. N'autorise la saisie d'une valeur qu'inférieur à la date spécifiée:

<#12.01.93#

3. N'autorise seulement que les textes commençant ou plus grand que la lettre spécifiée:

>"A"

4. N'autorise que la saisie de valeurs égales à celle spécifiées:

="Madame" OU ="Monsieur"

5. N'autorise que la saisie d'une date comprise entre la date de jour et la même date mais 65 ans plus tôt:

= SérieDate(Année (Maintenant ())-65;Mois(Maintenant());Jour(Maintenant()) Il est aussi possible de mettre une règle de validation au niveau de la table. Effectivement, lorsque vous êtes en Mode création et que vous cliquez sur le bouton apparaît la boîte de dialogue suivante:

dans laquelle nous voyons un exemple d'application où la règle impose que l'information (date) se trouvant dans le champ nommé date naissance est inférieure à la date se trouvant dans le champ date décès.

Attention!!!! Des critères multiples dans le Valide Si nécessitent obligatoirement l'usage de la fonction VRAIFAUX( ) qui est l'équivalent de la fonction SI( ) de MS Office Excel

Maintenant que vous avez parcouru cette liste non exhaustive, nous allons passer à un petit exercice pratique:

Ouvrez la table tblArticles et entrez pour les noms de champs N° Article, N° Fournisseur et Quantité par unité de commande une description comme ci-dessous (si l'équivalent n'a pas déjà été fait):

Modifiez la structure de la table en:

N° Article

Taille du champ = 7 et Nul interdit Désignation

Taille du champ = 30 et Nul interdit N° Fournisseur

Format Nombre général (Entier) Décimales 0 Quantité par unité de commande

Valeur par défaut 5 Validité si >=5 (la logique de lecture est inverse de ce que l'on a l'habitude d'utiliser) et message si erreur 'Valeur trop petite'

Prix unitaire

Format: Monétaire et valeur par défaut 0

Fermez et enregistrez la table et testez ensuite le formulaire instantané que nous avions créé en tout début de cours pour voir comment il se comporte maintenant que nous avons défini toutes ces propriétés (il faut prendre l'habitude de faire systématiquement ce genre de contrôles).

Définissez pour le champ d'enregistrements N° Article, un masque de saisie qui n'accepte pour l'entrée au trois premières positions que trois lettres et pour les trois dernières, trois nombres séparés par un trait d'union (>LLL-000).

Etablissez à l'aide de l'assistant de liste de choix, une liste telle que l'on puisse choisir le N°

Fournisseur dans la table Articles au lieu de le saisir (cette liste doit afficher également les noms des fournisseurs et s'adapter automatiquement si des nouveaux sont entrés dans le table Fournisseurs). Changez pour le Mode feuille de données et vérifiez le résultat.

Ouvrez l'ancien formulaire de la table tblArticles et testez la saisie. Comme vous pouvez certainement le voir, le formulaire ne s'est pas adapté aux nouvelles propriétés des champs.

Deux possibilités s'offrent alors à vous:

1. Ecraser l'ancien formulaire instantané par un nouveau (option très gênante si vous avez passé beaucoup de temps à faire des modifications sur ce premier)

2. Mettre à jour l'ancien formulaire en supprimant les champs qui ont changés en

cliquant sur le bouton suivant de la barre d'outils (quand votre formulaire est en mode création):

Ce bouton va faire apparaître une petite fenêtre dans laquelle se trouvent tous les champs utilisés par votre formulaire. Il suffit ensuite de faire un "glisser/déplacer".

Créez un formulaire instantané pour la table tblFournisseurs et insérez un nouveau fournisseur (laissez jouer votre imagination). Enregistrez ce formulaire sous le nom

"Fournisseurs".

Revenez dans le formulaire Articles et testez si le numéro du nouveau fournisseur apparaît dans la liste des numéros de fournisseurs.

Changez le champ d'enregistrement NPA de la table tblFournisseurs en un champ d'enregistrement de type "Texte" avec une taille de 5 caractères.

Renommez le champ d'enregistrement Délais de livraison/Jours en Délais de livraison et définissez un format d'affichage qui contienne le texte "jour(s)". (#" jour(s)"). Définissez la valeur par défaut à 0.

Dans la table tblSorties définissez la valeur par défaut du champ d'enregistrement Date de Sortie comme étant la date du jour (fonction Date( )).

Ajouter dans la table tblVendeurs la colonne de Provisions (avec le type de données Numériques, au format Pourcentage avec taille de champ de type Réel simple) où seul des pourcentages avec au plus deux décimales après la virgule doivent pouvoir être saisis.

Saisissez les valeurs comme représentées sur la figure suivante:

Comme vous pouvez l'observer nous devons faire face à un problème relatif aux pourcentages. Parlez-en avec votre formateur.

Définissez pour le champ Région un liste de choix dans laquelle vous mettez à disposition les valeurs Nord, Est, Sud, Ouest. De plus, il faut empêcher l'utilisateur de pouvoir saisir autre chose que proposé dans cette liste. Ainsi:

Cette propriété est assez importante. Il faut essayer de ne jamais l'oublier. Ainsi, dans notre magasin, toutes les listes doivent être limitées.

Ouvrez l'ancien formulaire instantané de la table Vendeurs vérifiez si la liste fonctionne et au besoin mettez le champ à jour.

Insérez, toujours dans la table Sorties, un champ nommé "Payement en espèces" et un autre nommé "Payement par crédit". Pour chacun de ces champs, prenez comme type de données celui nommé "Oui/Non".

Créez un formulaire instantané pour la table Sorties et définissez au hasard, pour chaque enregistrement, le type de payement.

Evidemment on peut actuellement cocher les deux cases mais on verra plus tard avec les macros comment gérer ce genre d'absurdités.

Documents relatifs