formateur informatique

Verrouiller un sous-formulaire Access

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Verrouiller un sous-formulaire Access
Livres à télécharger


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


Inscription Newsletter    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Verrouiller un sous-formulaire

Certaines applications offrent de riches informations sur une même interface. C'est le cas notamment lorsque les données sont regroupées dans un même formulaire et que les informations attachées sont rapatriées dans un sous-formulaire.

Formulaire Access de facturation avec la liste des commandes dans le sous-formulaire

Dans l'exemple illustré par la capture, nous travaillons sur des factures de clients. Les informations de ce dernier sont rappelées dans la partie haute du formulaire. Le sous-formulaire résume quant à lui toutes les commandes qu'il a passées. Mais ici, ces données sont proposées uniquement à la consultation. En d'autres termes, aucune modification, suppression ou ajout ne doit être entrepris dans le sous-formulaire. Et cette nouvelle astuce Access montre comment verrouiller les champs d'un sous-formulaire.



Base de données source
Pour la démonstration des techniques, nous proposons d'appuyer notre étude sur une base de données existante. Celle-ci offre déjà un sous-formulaire attaché. Sur la gauche de l'écran, le volet de navigation liste tous les objets de cette application. On note la présence de quatre tables, de deux requêtes et de deux formulaires.
  • Double cliquer sur le formulaire Saisie-commandes pour l'exécuter,
Nous retrouvons l'interface présentée précédemment. Les informations du client sont bien disposées dans la partie supérieure du formulaire. Ses commandes attachées sont effectivement listées dans le sous-formulaire, placé dans la partie inférieure. Tout à fait en bas à gauche du formulaire, une petite barre de navigation permet de faire défiler les clients. Et à chaque changement, la liste des commandes attachées s'actualise naturellement dans le sous-formulaire. Mais à ce stade, aucun verrou n'est posé. Dans ce sous-formulaire, la saisie est autorisée tout comme l'ajout d'enregistrements et même la suppression de lignes.



Verrouiller les contrôles du sous-formulaire
Deux techniques essentielles existent pour sécuriser les informations d'un sous formulaire. La première consiste simplement à désactiver les champs de saisie. Ils continueront de présenter les données mais n'autoriseront plus aucune modification.
  • Fermer le formulaire en cliquant sur la croix de son onglet,
  • Dans le volet de navigation, cliquer droit sur le formulaire Detail-saisie-commandes,
  • Dans le menu contextuel, choisir de l'ouvrir en mode création,
Il s'agit du sous-formulaire attaché au formulaire que nous venons de découvrir. Nous l'affichons ainsi dans sa vue en conception.
  • Sur la règle horizontale, cliquer au-dessus de tous les contrôles de saisie,
Sélectionner tous les contrôles du formulaire Access en un clic sur la règle horizontale

De cette manière, nous traçons une ligne verticale virtuelle dont la trajectoire vient couper la position de tous les contrôles souhaités. Cette action a pour effet de les réunir dans une même sélection.
  • Dès lors, activer l'onglet Données de la feuille de propriétés,
Cette dernière est généralement placée sur la droite de l'écran. Si elle n'est pas visible dans votre environnement, vous devez cliquer sur le bouton Feuille de propriétés dans la section Outils du ruban Création.
  • Dès lors, double cliquer sur la valeur Oui de la propriété Activé,
Cette action a pour effet de basculer la valeur à Non. Et dans le même temps sur le formulaire, vous constatez que tous les contrôles sélectionnés se parent d'une couleur grisée. Cette apparence signifie que les contrôles sont disponibles à l'affichage seulement.

Désactiver les zones de texte du sous-formulaire Access pour les protéger des modifications

Cette simple action doit suffire à brider les modifications dans le sous-formulaire des données attachées au formulaire des clients.
  • Enregistrer le formulaire (CTRL + S),
  • Puis, le fermer en cliquant sur la croix de son onglet,
  • Dans le volet de navigation, double cliquer sur le formulaire Saisie-commandes,
Comme vous pouvez le voir, les données du sous formulaire sont effectivement proposées en libre consultation. Mais il n'est plus possible d'accéder aux zones de saisie pour modifier les informations. De même, il n'est plus possible de créer une nouvelle ligne pour ajouter une nouvelle commande au client.

Supprimer un enregistrement du sous-formulaire malgré les contrôles déscativés et verrouillés

Cependant, il reste possible de supprimer des enregistrements donc des lignes d'articles achetés. Pour cela, il suffit de cliquer droit sur l'une des étiquettes de ligne dans le sous-formulaire et de choisir la commande Supprimer l'enregistrement dans le menu contextuel. Et dans contexte, cette autorisation n'est pas arrangeante. Nous souhaitons un verrouillage complet du sous-formulaire.



Empêcher la modification d'un sous-formulaire
La manipulation précédente reste néanmoins intéressante pour savoir intervenir individuellement sur des contrôles du sous-formulaire. Mais il existe des propriétés générales qui permettent de définir le comportement global du sous-formulaire encapsulé. Avant de régler ces dernières, nous devons réinitialiser les réglages que nous avons entrepris.
  • Dans le volet de navigation, cliquer droit sur le formulaire Detail-saisie-commandes,
  • Dans le menu contextuel, choisir de l'ouvrir en mode Création,
Cette action a pour effet de fermer le formulaire principal. Il ne peut rester actif et autoriser des modifications alors qu'il est en exécution.
  • Comme précédemment, sélectionner tous les contrôles de saisie,
  • Activer l'onglet Données de la feuille de propriétés,
  • Double cliquer sur la valeur Non de la propriété Activé,
Cette fois, nous basculons l'état sur Oui. Toutes les zones de texte sont de nouveaux disponibles à la saisie, donc aux modifications.
  • Enregistrer le formulaire (CTRL + S) puis le fermer en cliquant sur la croix de son onglet,
  • Dans le volet de navigation, double cliquer sur le formulaire Saisie-commandes,
Vous le constatez, la saisie, la modification comme la suppression et l'ajout de données sont de nouveau rendus disponibles dans le sous-formulaire.
  • A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans les propositions, choisir le mode création,
  • Dans le formulaire en conception, cliquer sur le sous-formulaire pour l'activer,
  • Puis, cliquer sur le rectangle grisé à l'intersection des règles,
Sélectionner tout le sous-formulaire Access en cliquant sur son carré grisé

De cette manière, nous désignons explicitement l'objet du sous-formulaire encapsulé dans le formulaire parent.
  • Activer alors l'onglet Données de sa feuille de propriétés,
  • Double cliquer sur la valeur Oui de sa propriété Ajout autorisé,
  • Double cliquer sur la valeur Oui de sa propriété Suppr autorisée,
  • Double cliquer sur la valeur Oui de sa propriété Modif autorisée,
Ainsi, nous les basculons toutes trois sur l'état Non. Elles parlent d'elles-mêmes. Elles empêchent désormais et respectivement, la création d'une nouvelle commande, la suppression d'un enregistrement ou encore la modification d'une ligne en cours. Il est donc possible de verrouiller indépendamment ces leviers. Nous pourrions par exemple très bien imaginer un sous-formulaire autorisant la modification et la suppression de données mais pas la création d'un nouvel enregistrement attaché.
  • Enregistrer les modifications et exécuter le formulaire,
Comme vous pouvez le voir et contrairement au cas précédent, les zones de saisie restent tout à fait disponibles dans le sous-formulaire en feuille de données. Cependant, si vous tapez des informations au clavier, rien ne se produit. La modification est effectivement interdite.

Protéger sous-formulaire Access contre la modification, ajout et suppression de données

De plus, si vous cliquez droit sur l'une des étiquettes de ligne, vous constatez que les commandes de création et de suppression sont neutralisées. Le sous-formulaire est donc parfaitement verrouillé, en trois clics seulement.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn