Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Actualiser les données sur formulaire Access
Ce nouvel
exercice Access est l'occasion de mettre en pratique ce que nous avons appris sur les
macros , afin d'aboutir le fonctionnement de certains
formulaires . Les outils concernés sont les
formulaires d'action . Leur conception est finalisée mais leur développement est en attente. En effet, jusqu'alors nous ne maitrisions pas les techniques nécessaires pour les rendre dynamiques et opérationnels. De cette manière, notre
application de gestion et facturation des clients va progresser d'un pas supplémentaire.
Source et présentation de la problématique
Avant de débuter, nous devons bien entendu commencer par récupérer cette application. A chaque exercice, nous la faisons évoluer.
Comme vous le savez, un mot de passe d'accès est demandé à l'ouverture de la
base de données . C'est une
macro AutoExec qui vérifie la saisie de l'utilisateur dans une boîte de dialogue. Cette dernière est générée grâce à la
fonction Access BEntrée .
Saisir le mot de passe abc et valider avec le bouton Ok,
Automatiquement l'accès est déverrouillé et le formulaire principal de navigation apparaît. En cas de saisie erronée, la
base de données aurait été fermée par la
macro Access . Mais comme il s'agit d'une source externe, pas encore reconnue par le système d'exploitation, elle doit être activée. Il s'agit d'une sécurité supplémentaire du
logiciel Access .
Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
Comme l'application vient d'être regénérée, le
mot de passe d'accès est de nouveau demandé. A l'avenir, il ne sera à inscrire qu'une seule fois à l'ouverture.
Saisir de nouveau le mot de passe abc et valider par la touche Entrée du clavier,
Ce
formulaire principal offre l'accès à tous les outils permettant de consulter et modifier les données de la base. Ce sont les onglets de navigation qui permettent de les atteindre respectivement. C'est la raison pour laquelle ce
formulaire est chargé à l'ouverture.
Les deux premiers onglets Produits et Clients permettent d'accéder à des outils de consultation de l'information. Ils ne nous intéressent donc pas ici. L'onglet suivant porte l'intitulé
Chercher un client .
Nous l'utiliserons à des fins commerciales pour isoler rapidement toutes les personnes d'un département, voire même d'une commune spécifique. Mais il est encore trop tôt pour engager les travaux destinés à l'aboutir.
En revanche, le formulaire suivant, accessible par l'
onglet Facturation doit progresser dans cet exercice. Il n'est pas encore question de le finaliser, loin s'en faut. La tâche est encore ardue.
Cliquer sur la première liste déroulante pour choisir un identifiant client,
Cliquer sur la seconde liste déroulante pour désigner une référence article,
Ces listes sont parfaitement chargées des contenus issus des tables respectives
Clients et
Produits . Néanmoins et comme vous le constatez, les informations attachées ne sont pas restituées dans les zones de texte prévues à cet effet.
Nous avions expliqué ce phénomène à l'occasion d'un
exercice sur les formulaires . Nous avions exploité la fonction Access RechDom pour établir la correspondance entre le choix dans la liste et la donnée à importer. Tout est prêt donc. Mais en l'absence d'action spécifique, les données ne sont pas réactualisées. Et cette action de macro doit intervenir sur un évènement précis. Il s'agit du changement de valeur dans la
liste déroulante . Voilà donc la finalité principale de cet exercice. En effet, ce dysfonctionnement est repéré sur d'autres
formulaires d'actions , exactement pour la même raison.
Cliquer sur le dernier onglet intitulé Outils actions ,
Comme vous pouvez le voir, un nouveau mot de passe barre l'accès. Mais cette fois, il s'agit d'un mot de passe administrateur, donc différent du premier. Les formulaires qu'il contient sont en effet sensibles. Ils permettent d'influer sur les données de la base.
Saisir le mot de passe abc123 et valider par la touche Entrée du clavier,
L'accès est ainsi déverrouillé et une nouvelle navigation en cascade, verticale cette fois, est proposée. Les deux premiers
formulaires sont des outils de création. Aucune donnée n'est à rapatrier. Ils ne nous intéressent donc pas pour l'instant.
En revanche, les trois suivants proposent une liste déroulante à partir de laquelle il s'agit de récupérer les informations attachées. La encore, les travaux préalables ont été réalisés grâce à la
fonction RechDom dans chaque zone de saisie correspondante. Il reste donc à actualiser ces informations par
action de macro à déclencher sur
événement .
Actualiser le formulaire par macro
Dans l'exercice précédent, nous avons appris à déclencher une
macro au
chargement du formulaire . L'objectif était d'en sécuriser l'accès. Et nous avons pu en constater le succès en tentant d'atteindre les
formulaires d'actions . Ici, le principe est le même. Mais le contrôle concerné n'est plus le formulaire. Dans chaque cas, il s'agit de la
liste déroulante . La
feuille de propriétés rappelle tous les attributs qu'il est possible de régler pour le contrôle actif sur le formulaire en conception. Parmi elles figurent les évènements. Et l'un d'entre eux concerne le changement détecté dans une
liste déroulante . C'est à cette occasion que nous devons déclencher notre
macro pour actualiser les informations.
Fermer le formulaire _F_navig_principal en cliquant sur la croix de son onglet,
Dans le volet de navigation, cliquer droit sur le formulaire F_Commandes ,
Dans le menu contextuel, choisir Mode création ,
Nous basculons ainsi dans la vue en conception du
formulaire destiné à construire les factures des clients. Dans la
section Zone Client , toutes les informations attachées à l'identifiant choisi dans la liste, doivent être récupérées dynamiquement. Il en va de même dans la
section Zone Produit , selon la référence article sélectionnée dans la liste.
A ce titre, dans cette vue en conception, vous notez l'inscription de la
fonction RechDom dans chaque zone de texte. Sa syntaxe est adaptée selon la donnée à importer. C'est ce que nous évoquions précédemment. Nous n'avons plus qu'à forcer l'actualisation des informations au changement de valeur dans l'une et l'autre liste déroulante. Et la technique est triviale.
Comme vous le savez, la
feuille de propriétés doit être disponible. Et c'est le bouton du même nom, dans le
ruban contextuel Création , qui permet de l'afficher ou de la masquer.
Sélectionner la première liste déroulante, celle des clients (Id),
Activer l'onglet Evènement de sa feuille de propriétés,
Cliquer alors sur le petit bouton à l'extrémité droite de son évènement Sur changement ,
Une boîte de dialogue apparaît. Elle propose différentes solutions pour enclencher des opérations.
Choisir Générateur de macro et cliquer sur le bouton Ok,
Nous en avons l'habitude désormais. Nous basculons ainsi dans l'
éditeur de macro Access . La liste déroulante qui se propose permet de choisir une action à déclencher sur cet évènement attaché.
Avec cette liste déroulante, choisir l'action AfficherTousEnreg ,
Et c'est tout. Fallait-il encore le savoir. Cette action a pour effet d'actualiser les sources de données et liaisons. Comme elle intervient au changement détecté dans la
liste déroulante , nous devrions constater l'importation actualisée des données dans chaque zone de saisie.
Dans le ruban Création, cliquer sur le bouton Enregistrer puis sur le bouton Fermer ,
Nous sommes de retour sur le formulaire en conception. Nous devons mettre à jour de lien entre la liste déroulante et la macro.
Cliquer sur l'icône de la disquette dans la barre d'accès rapide pour enregistrer,
Vous pouvez aussi réaliser le raccourci clavier CTRL + S. Nous n'en avons pas terminé. Nous devons actualiser les informations importées, de la même façon, pour la liste déroulante de la deuxième section.
Cliquer sur la liste déroulante des produits (Reference) pour la sélectionner,
Activer l'onglet Evènement de sa feuille de propriétés,
Cliquer sur le petit bouton de son évènement Sur changement ,
Dans la boîte de dialogue, choisir Générateur de macro et valider par Ok,
Dans l'éditeur de macro, choisir l'action AfficherTousEnreg ,
Dans le ruban Création, cliquer sur le bouton Enregistrer puis sur le bouton Fermer ,
De retour sur le formulaire, cliquer sur le symbole de la disquette pour l'enregistrer,
Puis l'exécuter grâce à la touche F5 du clavier par exemple,
Choisir un identifiant client avec la première liste déroulante,
L'application progresse. Toutes les informations attachées du client sont respectivement importées dans les zones de saisie prévues à cet effet. Vous pouvez remarquer une adaptation des couleurs de fond selon la civilité de la personne. Il s'agit d'une
mise en forme conditionnelle que nous avions bâtie à l'occasion de l'un des
exercices sur les formulaires .
Avec la seconde liste déroulante, choisir un code article,
Là encore, grâce à l'
action de macro déclenchée au changement dans la liste déroulante, toutes les données attachées du produit sont rapatriées dans les contrôles dédiés.
Il reste encore du chemin à parcourir pour ce
formulaire qui est l'outil principal de cette application. Il s'agira de consolider la commande au fil des articles achetés puis de valider la facture du client. Nous le verrons dans les prochains exercices, des interactions entre le
formulaire , les
macros et
requêtes seront nécessaires. Malgré tout, nous avons progressé d'un pas intéressant nécessaire pour la suite.
Nous devons poursuivre la préparation de l'application. Et pour cela, la même technique doit être employée pour les formulaires d'action :
F_maj_produit ,
F_suppr_client et
F_suppr_produit . Il s'agit d'une très bonne mise en pratique à réaliser seul. Chacun offre une
liste déroulante . Les
fonctions RechDom sont présentes dans les contrôles attachés. Il ne reste plus qu'à déclencher l'
action de macro AfficherTousEnreg au changement dans la liste, sur chacun de ces formulaires.