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 !) :

  1. Ouvrez votre formulaire en mode Création.
  2. Écrivez le code suivant dans l’événement Avant Màj du formulaire :

Remplacez bien sûr les noms entre crochets par vos noms de champs.

Vous aimerez aussi...

10 réponses

  1. Pacodiaz dit :

    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 .

    • Hervé Inisan dit :

      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).

  2. ira dit :

    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

  3. Guylaine dit :

    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

    • Hervé Inisan dit :

      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.

      • Guylaine dit :

        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.

        • Hervé Inisan dit :

          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).

  4. Hervé Inisan dit :

    m41g > La liste déroulante est également sur le formulaire principal ?

  5. m41g dit :

    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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *