Leçon 11 : Le masque de saisie, sous-versions d'Access

Temps nécessaire pour suivre cette leçon : Environ une demie-heure

Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données ProFormation.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici

Aperçu de cette leçon

Dans cette leçon, nous allons apprendre à utiliser un masque de saisie. C'est à dire comment faciliter la saisie de champs qui contiennent des données structurées formellement sans risque d'erreur

Sommaire

  1. La propriété de champ "Masque de saisie" : Comparaison avec la propriété "Valide Si"
  2. La propriété de champ "Masque de saisie" : Utilisation de l'assistant
  3. La propriété de champ "Masque de saisie" : analyse des sections du masque
  4. La propriété de champ "Masque de saisie" : Cas déconseillés

La propriété de champ "Masque de saisie" : Comparaison avec la propriété "Valide Si"

Admettons que ma table de clients soit plutôt une table de salariés. J'ai besoin de placer le N° A.V.S* de chaque salarié. Comment puis-je éviter toute erreur de saisie ? Avec la propriété Valide Si ? Mais ça me parait bien compliqué !

* Le N° AVS est comme le numéro de sécurité sociale en France. C'est un numéro composé comme suit : 382.59.276.311 (par exemple). C'est un numéro qui nous suit toute notre vie pour pouvoir toucher notre "Assurance Vieillesse", ou AI : assurance Invalidité

Effectivement. la propriété "Valide Si" permet seulement de restreindre des valeurs. Mais ici, ce ne sont pas des valeurs que vous voulez restreindre, mais une structure :
3 chiffres .2 chiffres .3 chiffres .3 chiffres
ces groupes de chiffres étant séparés par des points. 398.34.909.112 est correct, mais pas 345.222.12.09 (Les groupes de chiffres ne sont pas respectés) ni A67.VV.223.8H7 (Il y a des lettres qui n'ont rien à faire là) ni 345.32.212 (Il manque le dernier groupe de 3 chiffres).

En fait, ce serait bien qu'on soit "guidé" dans le champ. Nous allons faire en sorte que lors d'un clic dans le champ NoAVS, nous visualisions ce "guide" représenté par des traits de soulignements qui vont nous montrer comment entrer correctement ce numéro : .

Marche à suivre :

Pour commencer, vous créez un nouveau champ NoAVS juste en dessous de Prenom. vous le laissez en texte

Ah ??? On ne le définit pas en numérique ?

Non. Ce n'est pas vraiment vraiment un numérique : Il y aura des points entre les groupes de chiffres.


La propriété de champ "Masque de saisie" : Utilisation de l'assistant

Dans les propriétés de ce champ NoAVS, vous cliquez sur "Masque de saisie", et ensuite sur : .

Plusieurs élèves m'ont signalé l'absence de ces 3 petits points... J'en ignore la raison (Ce n'est pas la version d'Access, ça c'est certain)... Je pense que c'est éventuellement dû à une installation d'Access avec trop peu d'options.. La réinstallation complète d'Access peut-elle résoudre le problème ? J'attend vos commentaires...

Access vous demande . Dites Oui.Vous arrivez sur une boîte de dialogue qui va vous permettre de choisir le masque de saisie qui correspond le mieux à votre besoin. Nous avons de la chance, le SIN (C'est le numéro de sécurité sociale américain à ce que j'ai pu comprendre) représente exactement la structure que nous désirons : 3 chiffres.2 chiffres.3chiffres.2chiffres. Choisissez le, et cliquez dans la zone essayer : .

Quelqu'un m'a fait remarquer qu'il avait les choix suivants : , si c'est votre cas, choisissez ce qui se rapproche le plus : Par exempleN° Siret. Apparemment, il s'avère que selon le pays définit dans les options régionales du panneau de configuration, lors de l'installation d'Access, s'il se trouve que c'est la France qui est définie, ce sont ces choix qui apparaissent.

Ecrivez quelques chiffres . Vous constatez que les chiffres se répartissent harmonieusement dans la zone, et vous indiquent de manière explicite combien vous devez encore en entrer. Remplissez tous les traits de soulignements sinon vous subirez une erreur (c'est normal... c'est ce qu'on recherche) et cliquez sur . Vous tombez dans cette boîte de dialogue :. Vous allez pouvoir personnaliser votre masque de saisie. La zone "Masque de saisie" contient actuellement 000.00.000.000 : C'est réellement le "masque". Si par exemple, vous aviez voulu entrer une structure de chiffres telle que 2254/24332 (4 chiffres SLASH 5 chiffres), vous auriez inscrit dans cette zone : 0000/00000

Pourquoi met-il des 0 et pas autre chose ?

Les 0 veulent dire "Chiffre obligatoire". Si à la place de certains 0, vous aviez installé des 9 (000.00.000.999 par exemple), alors le masque de saisie accepterait que les 3 dernières positions ne soient pas remplies. Tandis que le 0 exige un chiffre.

D'ailleurs, il est très possible de créer des masques de saisie qui acceptent des lettres.
Dans ce cas, ce n'est plus 0 ou 9, mais L. Un masque de saisie tel que LL.LL.LL acceptera des valeurs telles que zt.hg.lp ou RQ.jz.KK, mais pas rt.88.90 (Les chiffres sont interdit), ni RT.JK.M (Manque une lettre à la fin). L'aide d'Access, à la rubrique "Masque de saisie" nous donne un aperçu des possibilités. Je reproduis ici ce fragment d'aide

Revenons à nos moutons :

La zone "Masque de saisie" est donc le masque proprement dit.

La zone "Caractère espace réservé" représente le signe qui va être placé à la place des traits de soulignement (_). Par exemple, si vous mettez une étoile (*) dans cette zone , alors, vous devrez écrire "par dessus" ces étoiles. Personnellement, je trouve mille fois plus convivial d'avoir un trait de soulignement, comme c'est proposé par défaut . Laissez donc ce trait de soulignement, et laissez finalement 000.00.000.000 dans "Masque de saisie". Cliquez sur .

Une alternative vous est offerte : . Ce choix est à la fois peu important et subtil. C'est à dire qu'il nous demande s'il est bien nécessaire de stocker de manière interne les points (.) qui séparent les groupes de chiffres. Qu'on réponde oui ou non n'est pas d'une importance primordiale, puisque de toute façon, comme nous avons défini un masque de saisie, les points entre les groupes de chiffres, qu'ils existent réellement en interne dans Access ou qu'ils n'existent pas, ils seront visibles de toute manière.

Par contre, si vous exportez votre table dans Excel par exemple, et que vous avez choisi ici "Sans les symboles dans le masque", les données seront exportées sous Excel sans les points entre les groupes de chiffres. On pourrait alors dire qu'il est légèrement préférable de stocker "Avec les symboles dans le masque". ça prendra un tout petit peu de mémoire en plus (la place que prend les points) mais c'est tellement négligeable.

Choisissez "Avec les symboles dans le masque". Cliquez sur , et puis sur .


La propriété de champ "Masque de saisie" : analyse des sections du masque

C'est terminé. Vous êtes de retour dans votre table en mode création. Vous constatez que dans l'option Masque de saisie, Access a installé ceci : . Le masque de saisie est divisé en 3 parties, séparées par un Point virgule ;

Oui, c'est quoi exactement ?

000.00.000.000 : C'est le masque de saisie proprement dit
0 : C'est le fait que les données seront enregistrées avec les points qui séparent les sections du numéro AVS (Rappelez-vous plus haut : Si on exporte dans Excel cette table, il est important que les points de séparation soient aussi exportés). Si on ne met rien à la place de 0, les points de séparation ne seront pas installés en interne (Mais ils seront quand même visible à l'écran... Je sais ce n'est pas évident, mais ce n'est pas très important non plus...)
_ : Ce trait de soulignement représente les espaces qu'il faudra remplir quand on cliquera dans le champ. Si à la place on met une * alors le masque ressemblera à ***.**.***.*** ... Pas très joli...


La propriété de champ "Masque de saisie" : Cas déconseillés

C'est génial ! Par exemple, pour les téléphones, je pourrais mettre (000) 000.00.00 !

Ah ! Attention ! Si vous optez pour ce masque de saisie, vous ne pourrez entrerQUE des téléphones de style (022) 784.67.21... Pas question de mettre un numéro de téléphone d'un autre pays par exemple : 06.12.54.65.89 ne tient pas par exemple

C'est juste ! En fait, les téléphones, je les définit simplement en numérique alors ?

MEME PAS !!!! Dans un numéro de téléphone, il y a des parenthèses, des points... Plein de choses qui ne peuvent pas être acceptées par des numériques !

Mais vous m'énervez à la fin ! Je met pas de masques de saisie, pas de numérique ! Je peux utiliser Acecss au moins ??? Je met quoi alors comme type de champ pour les téléphones ?

On se calme. Prenez donc un anxiolytique avant de continuer !

Du texte ... Tout simplement... Ce n'est pas parce qu'Access regorge de subtilités qu'il faut ABSOLUMENT les utiliser. Vous avez bien une Ferrari, comme tout le monde, non ? Ce n'est pas pour ça que vous allez rouler continuellement à 300 KM/H, non ???

C'est vrai... Vous avez raison... Donc, si j'ai bien compris, on n'installe un masque de saisie QUE lorsque les données DOIVENT être STRICTEMENT ordonnées, comme le N° AVS ?

Oui, vous avez bien compris. soit donc un numéro AVS, ou un numéro d'article tel que FRE-00532 (3 lettres tiret 5 chiffres rar exemple).

Bon... Hum... On peut résumer ?

Le masque de saisie peut s'écrire à la main, mais il est mille fois plus pratique d'utiliser l'assistant qu'on trouve sous la forme d'un bouton avec 3 petits points dans l'option Masque de saisie du champ que vous voulez traiter.
On n'installe un masque de saisie qu'exceptionnellement : Seulement dans le cas ou le champ DOIT contenir des données STRICTEMENT structurées. Un numéro de sécurité sociale : Oui. Un numéro de téléphone : Non.

Avez-vous bien compris ?

  1. J'ai un champ Fax. Quel masque de saisie vais-je utiliser ?
    a. (000).000.00.00
    b. 00.00.00.00.00
    c. FAX
    d. Il n'est pas recommandé d'utiliser un masque de saisie pour ce champ ***

  2. J'ai un champ NoProduit, qui contient 3 lettres et 4 chiffres, séparés par un point. Quel masque de saisie vais-je utiliser ?
    a. 000.0000
    b. 000.LLLL
    c. LLL.0000 ***
    d.
    Il n'est pas recommandé d'utiliser un masque de saisie pour ce champ
  3. Dans le masque de saisie 000.00;0;_, que veut dire le _ ?
    a. Les endroits ou l'utilisateur va taper les chiffres seront représentés par un trait de soulignement ***
    b. Les données seront enregistrées avec le point de séparation entre des groupes de chiffre
    c. Tous les chiffres ne sont pas obligatoires
    d. Les chiffres et les lettres sont admis dans le masque de saisie

  4. J'ai un masque de saisie 000.L0 Que puis-je rentrer comme données ?
    a. 769.37
    b. 2798.S1
    c. 110.XX
    d. 297.Q1 ***

Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses.

Exercice

L'exercice consiste à créer une base de données que vous appellerez Correspondance.MDB. Dans cette base de données, vous alez créer une table qui va contenir les correspondances des différentes normes d'un même produit pour plusieurs pays.
Je vais vous donner un exemple fantaisiste pour mieux comprendre : Vous avez toute une série de pièces détachées pour ordinateurs, que vous pouvez commander dans les succursales de différents pays. Mais chaque pays à sa norme concernant chaque pièce détachée. Par exemple si vous voulez commander une boite de disquettes en Autriche, vous devrez spécifier sa référence : SW-3316. Mais la même boîte de disquette commandée en Hollande sera référencée sous l'appellation DIS00008. Vous voyez venir le coup des masques de saisie ?

Voici les données que vous allez devoir "Engranger" dans votre table :

Boîte de disquette
Autriche : SW-3316
Hollande : DIS00008
Belgique : di.exp.556

Souris
Autriche : RR-2209
Hollande : SOU00017
Belgique : so.exp.098

Carte graphique
Autriche : TR-1009
Hollande : CAG00013
Belgique : cg.imp.599

Téléchargez la solution de l'exercice ici

Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de ProFormation.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.

Avez-vous une question technique concernant cette leçon ? Cliquez ici !
Une remarque sur cette leçon ? Un problème ? Une erreur ? une ambiguité ? Soyez gentil de m'en informer