Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Transmettre les données entre formulaires
Cette nouvelle
astuce Access tient à démontrer comment il est possible de récupérer les valeurs d'un
formulaire depuis un autre
formulaire.
Dans l'exemple illustré par la capture, nous consultons les résultats des commerciaux d'une entreprise par le biais d'un premier
formulaire. Au clic sur un bouton, un autre
formulaire s'affiche récoltant toutes les données de l'enregistrement en cours de consultation depuis le premier
formulaire. La vocation de ce second
formulaire est d'entreprendre des modifications sur les informations du commercial ainsi récupéré.
Source et présentation
Avant de débuter les démonstrations, nous proposons de réceptionner une
base de données offrant des réglages avancés et ces
formulaires.
- Télécharger le fichier recuperer-autre-formulaire.rar en cliquant sur ce lien,
- Le décompresser dans le dossier de votre choix,
- Double cliquer sur le fichier résultant pour l'ouvrir dans Access,
- Puis, cliquer sur le bouton Activer le contenu du bandeau de sécurité,
- Dans le volet de navigation, double cliquer sur le formulaire f_com pour l'exécuter,
- A l'aide de la barre de navigation en bas de l'écran, atteindre par exemple le 4ème commercial,
Comme vous le constatez, tous les contrôles se parent d'une couleur rouge foncé.
Ils indiquent que les résultats de ce commercial ne sont pas suffisants par rapport à l'objectif fixé. Nous avons développé cette solution dans une précédente
astuce. Et pour cela, nous avons construit des
règles de mise en forme conditionnelle consistant à comparer le chiffre d'affaires développé par le commercial avec l'objectif fixé et propre à chacun.
- Cliquer alors sur le bouton Modifier,
Un
formulaire d'authentification se dresse. Avant d'atteindre le
formulaire de modification, il est question de vérifier que la personne est habilitée et donc qu'elle est en possession du
mot de passe administrateur.
- Dans la zone de saisie, taper le mot de passe : abc123,
Comme vous pouvez le voir, celui-ci est encrypté. Il s'agit aussi d'une solution que nous avons apportée à l'occasion d'une
astuce précédente.
- Cliquer alors sur le bouton Valider,
Comme le
mot de passe est reconnu, l'affichage du
formulaire de modification est commandé. Mais à ce stade et comme vous pouvez le constater, ses champs sont vides. Son rôle est de récupérer les informations en cours de consultation depuis le premier
formulaire pour permettre leur modification.
Transmettre des données entre formulaires
Pour que le
formulaire appelé récupère les informations du
formulaire appelant, l'
astuce consiste à bâtir des
expressions de correspondance entre les contrôles respectifs. Hormis la première zone de saisie du
formulaire f_modif, tous les contrôles portent les mêmes noms. Ils sont issus de la table Commerciaux : com_civilite, com_nom, com_prenom, com_ca et com_obj.
- Fermer le formulaire f_modif puis fermer le formulaire f_com,
- Dans le volet de navigation, cliquer droit sur le formulaire f_modif,
- Puis, dans la liste des propositions, choisir le mode création,
- Sur le formulaire en conception, cliquer sur la deuxième zone de saisie : com_civilite,
Cette zone de texte doit récupérer l'information sur la civilité dans le contrôle du même nom,
com_civilite, issu du
formulaire appelant
f_com. Pour bâtir l'expression de correspondance, le
générateur d'expression est d'une efficacité redoutable.
- Activer l'onglet Données de la feuille de propriétés,
- Cliquer sur le petit bouton à l'extrémité droite de la propriété Source contrôle,
Cette action a pour effet d'afficher le
générateur d'expression.
- Déployer l'arborescence de la liste de gauche jusqu'à atteindre le formulaire f_com,
- Dans la liste du centre, double cliquer sur le contrôle com_civilite,
L'
expression de correspondance se bâtit ainsi naturellement dans la partie supérieure du
générateur d'expression :
Formulaires![f_com]![com_civilite]. L'information du champ du même nom est ainsi prélevée depuis le
formulaire f_com pour être rapatriée dans le
contrôle com_civilite du
formulaire f_modif.
- Cliquer sur le bouton Ok du générateur d'expression pour valider la syntaxe,
De retour sur le
formulaire, vous notez que la syntaxe est parfaitement inscrite dans le
champ com_civilite. Plutôt que de répliquer le processus pour les autres contrôles, nous suggérons de coller cette syntaxe en adaptant simplement le nom du champ ciblé. Dans la
propriété Source contrôle, adapter respectivement les autres syntaxes comme suit :
- Pour le champ com_nom : =[Formulaires]![f_com]![com_nom],
- Pour le champ com_prenom : =[Formulaires]![f_com]![com_prenom],
- Pour le champ com_ca : =[Formulaires]![f_com]![com_ca],
- Pour le champ com_obj : =[Formulaires]![f_com]![com_obj],
Il ne nous reste plus qu'à tester la validité de ces
expressions de correspondance.
- Enregistrer le formulaire (CTRL + S) puis le fermer,
- Dans le volet de navigation, double cliquer sur le formulaire f_com pour l'exécuter,
- Avec la barre de navigation en bas de la fenêtre, atteindre par exemple le sixième commercial,
- Cliquer alors sur le bouton Modifier,
- Dans le formulaire d'accès qui se déclenche, taper le mot de passe : abc123,
- Puis, cliquer sur le bouton Valider,
Comme vous pouvez le voir, le
formulaire de modification s'affiche en restituant parfaitement les informations récoltées depuis le
formulaire f_com. Le but est désormais de permettre de modifier l'objectif du commercial pour l'actualiser dans la table source. Et nous le verrons, il s'agit du sujet de l'
astuce à venir.