formateur informatique

Contrôles et indicateurs de saisie sur formulaire Access

Accueil  >  Bureautique  >  Access  >  Access Avancé  >  Contrôles et indicateurs de saisie sur formulaire Access
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux, voici son url absolue :

Pour l'intégrer sur votre site internet ou blog, vous pouvez l'embarquer :

Sujets et formations similaires :


Indicateurs de saisie et formats

Dans cet exercice Access, nous poursuivons l'apprentissage des formulaires au travers des manipulations. Dans les exercices précédents, nous avons réalisé la conception manuelle du formulaire destiné à construire les commandes des clients. Nous avons ensuite exploité la fonction Access RechDom pour récolter les données correspondant aux choix. Nous souhaitons poursuivre la conception de ce formulaire. Il s'agit d'adapter les formats et de vérifier certaines saisies.



Base de données source
A chaque étape, notre base de données s'enrichit. Il convient donc de réceptionner tout d'abord les travaux là où nous les avions laissés. Ainsi, nous l'exécutons. Nous retrouvons notre formulaire constitué de trois sections, tel que nous l'avons paramétré.
  • Dans la Zone Client, choisir un identifiant avec la liste déroulante,
  • Dans la Zone Produit, choisir un code article avec la seconde liste déroulante,
Nous avions effectivement conçu ces listes pour qu'elles se remplissent automatiquement des identifiants, issus des tables respectives. Mais comme vous le constatez, aux choix, rien ne se produit. Nous avions expliqué la raison dans l'exercice précédent.
  • Dans le ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans la liste, choisir Mode création,
  • Puis, enfoncer la touche F5 du clavier pour exécuter de nouveau le formulaire,
Chargement automatique des informations associées aux choix des listes déroulantes de formulaire Access

Au rechargement, le formulaire conserve les choix précédemment réalisés au travers des listes déroulantes. Et cette fois, toutes les informations attachées sont parfaitement restituées dans les zones de texte dédiées. Comme nous l'avions expliqué, la fonction RechDom programmée pour chaque contrôle TextBox, requiert un évènement pour actualiser l'information. Le chargement du formulaire est l'un de ces évènements. Et nous verrons plus tard comment actualiser ces données au changement de valeur dans les listes déroulantes.

Formater les contrôles de formulaire
Comme nous avons réalisé une conception intégralement manuelle, les formats prédéfinis dans les tables n'ont pas été répliqués. Par exemple, le prix de l'article désigné doit être affiché en Euros.
  • Dans le ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans la liste qui se propose, choisir Mode création,
Nous affichons ainsi la vue du formulaire en mode conception. La feuille de propriétés est nécessaire pour les travaux à suivre. Elle est généralement placée sur la droite de l'écran. Et c'est le bouton Feuille de propriétés du ruban Contextuel Création qui permet de l'afficher, comme de la masquer. Cette feuille est elle-même contextuelle. Elle énumère tous les attributs du contrôle actif sur le formulaire. Et c'est grâce à elle que nous allons pouvoir ajuster les formats des uns et des autres.

Toutes les informations de la zone Client sont textuelles. Aucun format particulier n'est donc à entreprendre. En revanche, la zone Produit est plus spécifique. Elle restitue de nombreuses données numériques.
  • Sélectionner la zone de texte du prix,
  • Activer l'onglet Format de sa feuille de propriétés,
  • Avec la liste déroulante de son attribut Format, choisir Monétaire,
Appliquer le format monétaire à une zone de saisie numérique sur le formulaire Access

Nous ferons les vérifications d'usage en temps voulu. Dans l'enchaînement, nous proposons de paramétrer les autres contrôles. Celui qui nous intéresse est celui du poids. L'information numérique doit être accompagnée de l'unité de mesure, celle du gramme (g).
  • Sélectionner la zone de texte du poids,
  • Dans l'attribut Format de sa feuille de propriété, saisir l'expression suivante : # ##0'g',
Nous répliquons ce que nous avons appris avec les formats personnalisés d'Excel. Les dièses en préfixe permettent d'ignorer les zéros superflus. Un nombre tel que 07500 est transformé en 7 500, avec affichage du séparateur de milliers. C'est la raison pour laquelle il existe un espace entre le premier et le deuxième symbole. Le chiffre zéro indique en revanche que le dernier doit être conservé lorsqu'il est seul. La valeur 0,75 ne doit pas être transformée en ,75. Puis, l'unité de mesure est greffée à la suite entre doubles côtes. L'espace est nécessaire une fois les guillemets ouverts pour séparer l'unité du nombre.
  • Sélectionner désormais le contrôle des vues,
  • Dans l'attribut Format de sa feuille de propriété, saisir le code suivant : # ##0,
Il s'agit du même formatage mais sans l'unité de mesure. Ce champ est en effet un compteur de visites. Les nombres peuvent très vite grossir. L'affichage du séparateur de milliers est intéressant pour simplifier la lecture des grandes valeurs.

Le stock, la promo et la quantité achetée de la zone Commande sont des données numériques classiques. Il est néanmoins intéressant de leur attribuer le format basique. En effet, dès lors qu'un format numérique est spécifié, l'alignement des valeurs est forcé sur la droite du champ ou du contrôle. Et comme ce formatage est commun, nous pouvons optimiser le réglage en regroupant les contrôles dans une même sélection.
  • Sélectionner la zone de texte du stock,
  • Puis, tout en maintenant la touche Ctrl enfoncée, cliquer sur la zone de la Promo et sur celle de la quantité achetée,
  • Dans l'attribut Format de la feuille de propriétés, saisir le chiffre 0 et valider par Entrée,
Appliquer un format numérique à plusieurs zones de texte sélectionnées ensembles sur le formulaire Access
  • Enfin, dans la zone Commande, sélectionner le contrôle du montant total,
  • Dans l'attribut Format de sa feuille de propriétés, choisir le réglage Monétaire,
  • Cliquer sur un emplacement vide du formulaire pour désactiver la sélection,
  • Enregistrer les modifications avec le raccourci clavier CTRL + S par exemple,
  • Puis, exécuter le formulaire à l'aide de la touche F5 du clavier,
Comme vous le constatez, les données numériques sont formatées conformément aux attentes. Le prix est affiché en Euro. Le poids est formaté en grammes. Les autres valeurs numériques sont alignées à droite dans leur champ. A ce titre, il apparaît désormais judicieux d'ajuster l'alignement des étiquettes en cohérence. Pour ce faire, en mode création, il suffit de cliquer sur le bouton Aligner à droite du ruban contextuel Format.

Si vous tapez des valeurs numériques dans les deux zones de texte de la section Commande, vous notez qu'elles se formatent aussitôt, tel que nous l'avons défini.

Présentation travaillée du formulaire Access avec formatages numériques spécifiques des zones de saisie



Verrouiller les zones de saisie
Nous poursuivons la confection de notre formulaire, particulièrement précieux pour la suite des travaux. Dans la zone Client comme dans la zone Produit, toutes les données sont restituées en fonction des choix émis dans les listes déroulantes. Nous ne devons donc pas risquer de les modifier. Dans la zone Commande, seule la quantité attend la précision de l'utilisateur. Le montant total est un résultat de synthèse qu'il s'agira de consolider automatiquement. Nous devons donc empêcher l'utilisateur de pouvoir modifier ces informations. Comme il s'agit d'une propriété commune, nous allons pouvoir la régler pour tous contrôles concernés, regroupés dans une même sélection. Cette propriété se nomme Verrouillé. Elle est booléenne et par défaut elle est réglée sur Non.
  • Revenir en mode conception du formulaire,
  • A l'aide de la touche CTRL, sélectionner toutes les zones de texte de la section Client,
  • Toujours grâce à la touche CTRL, ajouter les zones de texte de la section Commande,
  • Puis, ajouter le contrôle du montant total, toujours avec la touche CTRL,
  • Activer alors l'onglet Données de la feuille de propriétés,
  • Double cliquer sur la valeur Non de l'attribut Verrouillé pour la basculer à Oui,
Sélectionner ensemble les contrôles sur le formulaire Access pour regrouper les opérations de formats de données

Nous paramétrons et protégeons ainsi les 12 zones de saisie en une seule action.
  • Cliquer sur un emplacement vide du formulaire pour désactiver les sélections,
  • Enregistrer les modifications et exécuter le formulaire,
Désormais, si vous tentez de modifier une information dans l'une des zones de texte configurée, aucun effet ne se produit. En revanche, il est toujours possible de changer les valeurs des listes déroulantes et de saisir la quantité achetée dans la section Commande. Cette étape est importante pour sécuriser l'information.

Contrôler la saisie
Pour poursuivre les travaux consistant à guider l'utilisateur et à sécuriser l'information, nous proposons de poser une règle de validité sur le champ de la quantité achetée. Il s'agit en effet de la seule zone dans laquelle la saisie demeure libre. L'information doit nécessairement être une valeur numérique entière et positive. Les textes doivent être refusés au même titre qu'une valeur décimale ou que le chiffre 0. N'oublions pas une contrainte importante, cette quantité ne doit pas dépasser le stock de l'article désigné. La propriété permettant de contrôler la saisie se nomme Valide Si.
  • Revenir en mode conception du formulaire,
  • Dans la zone Commande, sélectionner le contrôle de la quantité,
  • Puis, activer l'onglet Données de sa feuille de propriétés,
  • Cliquer droit dans la zone de son attribut Valide si,
  • Dans le menu contextuel, choisir Créer,
Créer nouvelle règle par générateur expression pour contrôler saisie sur formulaire Access

Comme vous le savez fort bien désormais, nous affichons ainsi le générateur d'expression Access.
  • Dans la liste de gauche, déployer l'arborescence des fonctions jusqu'à sélectionner l'élément Fonctions intégrées,
  • Dans la liste du centre, sélectionner la catégorie Inspection,
  • Dans la liste de droite, double cliquer sur la fonction EstNum,
Cette action a pour effet d'inscrire la fonction en haut du générateur d'expression et de débuter la syntaxe. Comme le précise l'information en bas de la boîte de dialogue, cette fonction renvoie un booléen (Vrai ou Faux) indiquant si la valeur passée en paramètre est numérique. La valeur à tester est celle du champ Qte. Et comme vous le savez, dans la syntaxe Access, un champ s'exprime toujours entre crochets.
  • En haut du générateur, dans les parenthèses de la fonction EstNum, remplacer le paramètre par défaut «expression» par le nom du champ : [Qte],
  • Cliquer ensuite à la fin de l'expression pour y placer le point d'insertion,
  • Taper le symbole égal suivi du texte Vrai, soit : =Vrai,
Tester si la saisie est numérique sur le formulaire Access grâce à une fonction dans une règle de validité

Nous sommes loin d'avoir terminé l'expression. Pour l'instant, nous nous assurons simplement que la donnée est numérique. Rien n'empêche la saisie d'une quantité nulle ou d'un nombre avec décimales. C'est l'opérateur Et qui permet de recouper les conditions dans l'expression à bâtir.
  • A la suite, ajouter le bout d'expression suivant : Et [Qte]>0,
En même temps, nous souhaitons donc nous assurer que la quantité saisie n'est pas nulle. Pour vérifier qu'il ne s'agit pas d'un nombre avec décimales, nous pouvons par exemple tester la présence de la virgule dans la chaîne. Et pour cela, il existe une fonction.
  • Ajouter un nouvel opérateur Et à la suite de la syntaxe,
  • Dans la liste du centre, sélectionner cette fois la catégorie Texte,
  • Dans la liste de droite, double cliquer sur la fonction InStrRev,
Comme le mentionne l'information en bas de la boîte de dialogue, cette fonction retourne la position de l'occurrence cherchée (la virgule) dans une chaîne texte. La chaîne de texte est le champ Qte à renseigner en premier paramètre. La virgule est à spécifier en deuxième paramètre. Les deux derniers arguments sont facultatifs. Si la position de départ pour la recherche n'est pas renseignée, l'analyse débute depuis l'extrémité de la chaîne. Si la fonction InStrRev retourne la valeur 0, elle indique que la virgule n'est pas trouvée. C'est exactement la condition que nous souhaitons satisfaire.
  • En haut du générateur, adapter les arguments de la fonction comme suit : InStrRev([Qte];','),
La virgule est un caractère textuel. Fort naturellement, elle doit donc être encadrée de doubles côtes.
  • Juste après la fonction, ajouter l'égalité à vérifier pour satisfaire le critère : =0,
Enfin, même si la donnée saisie est une valeur numérique conforme, nous devons nous assurer qu'elle ne dépasse pas la quantité en stock. Nous devons recouper une dernière condition consistant à comparer les valeurs des deux champs respectifs.
  • A la suite de la syntaxe, ajouter l'expression suivante : Et [Qte]<=[Stock],
L'expression globale finalisée est donc la suivante :

EstNum([Qte])=Vrai Et [Qte]>0 Et InStrRev([Qte];',')=0 Et [Qte]<=[Stock]
  • Cliquer sur le bouton Ok pour valider l'expression,
Expression multicritère Access pour vérifier la conformité de la saisie du stock sur le formulaire

De retour sur le formulaire, vous notez que la syntaxe s'inscrit dans la propriété Valide si pour le champ désigné. Dans l'optique d'une application professionnelle, il est important de guider l'utilisateur en cas de saisie erronée. Et à ce titre, il est possible de déclencher l'affichage d'une boîte de dialogue avec un message explicatif. C'est le rôle de l'attribut Message si erreur juste en dessous de la propriété Valide si.
  • Dans l'attribut Message si erreur, saisir le texte suivant par exemple :
Vous devez saisir une valeur entière positive ne dépassant pas le stock
  • Puis, valider avec la touche Entrée du clavier,
  • Cliquer alors sur un emplacement vide du formulaire,
  • Enregistrer les modifications et l'exécuter,
Saisie de la quantité en stock refusée par les règles de sécurité sur le formulaire Access

En réalisant plusieurs tests, vous constatez que :
  • Une valeur entière supérieure au stock est refusée,
  • Une valeur nulle est refusée,
  • Une valeur décimale est interdite,
  • Une chaîne de texte est bloquée,
  • Une valeur entière ne dépassant pas le stock est autorisée,
Dans tous les autres cas, tant que vous n'avez pas corrigé la donnée, il n'est pas possible de poursuivre. La boîte de message qui se déclenche est suffisamment explicite pour guider l'utilisateur dans la correction à entreprendre.



Indicateurs visuels
Pour parfaire la préparation du formulaire des commandes, nous souhaitons lui greffer une fonctionnalité dynamique. Il s'agit de repérer sans équivoque lorsque le client est une femme, ou un homme dans une autre couleur. Comme vous le savez, les entreprises réalisent souvent des opérations commerciales ciblées.

Nous proposons de teinter de bleu les contrôles de la zone Client lorsque la civilité est Monsieur et de rose dans le cas contraire. A l'instar d'Excel, la fonctionnalité qui permet de faire réagir des zones selon des critères, est la mise en forme conditionnelle.
  • Revenir en mode conception du formulaire,
  • A l'aide de la touche Ctrl, sélectionner la liste déroulante et les cinq contrôles de texte de la zone Client,
  • En haut de la fenêtre Access, cliquer ensuite sur l'onglet Format pour activer son ruban,
  • A droite du ruban, cliquer sur le bouton Mise en forme conditionnelle,
  • Dans la boîte de dialogue qui suit, cliquer sur le bouton Nouvelle règle,
  • Dans la nouvelle boîte de dialogue, choisir Expression avec la première liste déroulante,
  • Dans la zone de saisie sur sa droite, taper l'expression suivante : [Civilite]='Monsieur',
Le critère consiste à vérifier que la civilité est bien celle d'un homme. Comme toujours, le nom du champ est encadré de crochets tandis que la valeur textuelle est encadrée de doubles côtes. Si cette condition est vérifiée, les contrôles du formulaire doivent se parer d'un fond bleu.

Repérer dynamiquement les hommes par une règle de mise en forme conditionnelle sur un formulaire Access

La couleur choisie, susceptible de se déclencher, est aussitôt répercutée dans la zone Aperçu, sous l'expression du critère.
  • Valider la règle en cliquant sur le bouton Ok,
  • De retour sur la première boîte de dialogue, cliquer de nouveau sur le bouton Nouvelle règle,
  • Dans la boîte de dialogue qui suit, choisir de nouveau Expression avec la première liste,
  • Dans la zone de saisie sur sa droite, taper l'expression suivante : [Civilite]='Madame',
  • Avec le pot de peinture, choisir un rouge clair,
  • Puis, valider cette seconde règle en cliquant sur le bouton Ok,
Gestionnaire des règles de mise en forme conditionnelle sur formulaire Access

Nous sommes de retour sur la première boîte de dialogue qui résume explicitement les règles en vigueur.
  • Valider en cliquant de nouveau sur le bouton Ok,
  • Enregistrer les modifications et exécuter le formulaire,
Modifier automatiquement apparence et couleurs du formulaire en fonction des valeurs et données affichées

Comme vous le constatez, lorsque le client à facturer est une femme, les contrôles se parent de rose. Dans le cas contraire, ils se parent de bleu. Ces couleurs dynamiques sont précieuses pour fournir l'indication explicite instantanément.

Pour l'instant, vous devez encore basculer du mode conception au mode exécution afin de tester différents identifiants. Mais nous progressons à grands pas dans l'élaboration des outils de notre base de données, destinée à facturer les clients. Nous poursuivrons sa construction dans les prochains exercices.

 
Sur Facebook
Sur G+
Sur Youtube
Les livres
Contact
Mentions légales



Partager la formation
Partager sur Facebook
Partager sur Google+
Partager sur Twitter
Partager sur LinkedIn