Transférer un calcul dans une table
Dans un formulaire, j’ai un champ calculé. Comment stocker ce calcul dans la table dont dépend le formulaire ?
Etes-vous sûr de vouloir faire ça ?
Avant de démarrer, sachez que l’idée de stocker un calcul dans une table est mauvaise, pour plein de raisons :
- Le calcul ne se mettra à jour automatiquement que si vous alimentez la table à partir du formulaire.
- Par conséquent, si la table est alimentée par un autre moyen (saisie directe ou importation de fichier), vous devrez penser à mettre à jour le calcul par vous-même à chaque fois. Vous y penserez toujours ? Et si c’est un collègue qui prend le relais ?
- En résumé, vous risquez de voir la cohérence de vos données perdue à terme.
- D’autre part, vous stockez des informations redondantes (donc inutiles) dans la table, ce qui est contraire aux principes de construction d’une base.
Tant pis 🙂
Si malgré tout vous ne pouvez faire autrement (je vous aurai prévenu !) :
- Ouvrez votre formulaire en mode Création.
- Écrivez le code suivant dans l’événement
Avant Màj
du formulaire :
1 |
Me![Nom du champ de la table stockant le calcul] = Me![Nom du champ calculé du formulaire] |
Remplacez bien sûr les noms entre crochets par vos noms de champs.
Salut j’ai voulu stocker le résultat du champ calculé dans une table mais les informations n’y sont pas stocker. J’ai ouvert le formulaire en mode création et avant MAJ j’ai mis Me! [totaux_mensuel]= Me![total du mois] il me l’affiche dans le formulaire mais dans la table c’est toujours 0 .
Est-ce que tu as bien utilisé l’événement
Avant MAJ
du formulaire ? (il y en a un aussi pour chaque zone de texte, par exemple, mais ce n’est pas celui-là qui nous intéresse).D’autre part, est-ce que tu as validé l’enregistrement en cours sur le formulaire (en changeant d’enregistrement, ou en faisant un
Maj+Entrée
au claiver).slt, stp moi j’ai pas trouvé un autre moyen parce que j’ai utilisé un calcule dans le formulaire mais j’ai pas pu enregistrer le résultat dans la table
Il y a un message d’erreur ?
Les noms des champs sont correctement écrits ?
Re Hervé,
Désolé de vous importunez, mais j’aurais encore besoin d’aide.Du fait, merci pour la numérotation personnalisé tout fonctionne comme je souhaitais.
Sur mon F_Contrat qui a pour source ma T_Contrat, j’ai une section clients, une section véhicules et une section forfait.
Sur la section forfait, dans ma T_Contrat mes champs sont de types Calculé (puisque j’utilise Office 2010). Donc, tout ce rajoute dans ma table.
Sur les sections clients et véhicules, j’utilise « des colonnes extraites d’une liste déroulante » avec la formule « =[lstClients].Column(1) « . Ce qui fonctionne à merveille sur mon formulaire ( mais comme vous le savez les informations ne se stockent pas dans ma table). Toutefois, il serait important de conservé une copie de chaque formulaire avec toute les informations remplies pour une consultation future. Alors que me conseillez-vous s.v.p ? Merci
Il n’est sans doute pas utile de stocker des informations secondaires (ça fait double emploi, ce qui est déconseillé sur une base de données). Par contre, rien n’empêche de retrouver ces informations par requête : une requête qui regrouperait les tables souhaitées, et « piocherait » les infos utiles de chacune.
Je te remercie grandement pour ton aide ! Toutefois après plusieurs essayes (différentes requêtes), je n’y arrive pas. Alors je crois bien que je vais laisser le tout comme ça.
Est-ce que tu as essayé une requête simple : la table principale de ton formulaire (T_Contrat si j’ai suivi), plus la table T_Clients qui alimente la liste déroulante. Pour voir ce que ça sort comme résultats (cette requête servirait d’extraction, pas forcément en rapport avec le formulaire).
m41g > La liste déroulante est également sur le formulaire principal ?
Bonjour
j’ai le probleme suivant qui serait de transferer les valeurs d’un choix dans une liste deroulante (issue d’une table liste magasins) dans la table inventaire du formulaire principal pour automatiser une partie de la saisie. la redondance d’information ce n’est pas bon mais la j’ai besoin de garder trace de certaine information comme le nom du respnsable magasin par exemple
Un grand merci par avance