Resultat de calcul afficher dans une table

Résolu/Fermé
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
- 3 févr. 2014 à 14:37
 tessel75 - 11 févr. 2014 à 11:09
Bonjour,
J'ai un formulaire avec un champ date et un champs N°List qui est clé primaire. et un champs independant qui pour nom PoidsJour. Une formule va me chercher le resulatat du calcul dans le pieds du sous formulaire.
Un sous formulaire avec champs fournisseurs et poids.
Dans le pieds du sous formulaire un champ independant qui me calcule la somme des poids de la journée. Je voudrai que le poids jour s'affiche dans la table.
Comment faire?
Merci de votre aide



10 réponses

le meruvien
Messages postés
1037
Date d'inscription
vendredi 12 août 2011
Statut
Membre
Dernière intervention
12 mai 2022
43
3 févr. 2014 à 16:38
Bonjour,
Dans ton formulaire , il faut que tu ajoute un champ "poidsjour", et après mise à jour de ton SF qui cumul les poids de la journée, tu met:
forms![le nom du form].poidsjour=me![cumul des poids]
0
Bonsoir à tous les 2,
Je crains que ça ne fonctionne pas.
Je verrais 2 solutions soit par VBA, soit par une requête MiseAJour
1) par Vba --> Après MiseAJour du Formulaire tu mets un petit bout de code qui entre ton calcul dans le champ correspondant de ta table, du genre : me![ChampCumulDesPoids] = forms!MonFormulairePrincipal].PoidsJourCalculé
Et tes valeurs sont entrées dans la table fur à mesure, comme si la saisie était manuelle.
2) par requête --> Tu construis une requête qui opère ton calcul en regroupant les données des sous-formulaires par Formulaire et qui MetAJour la table source de ton formulaire principal. Et tu l'intègres dans un morceau de code VBA qui la lance à la fermeture du Formulaire par exemple.
Les 2 solutions me paraissent équivalentes. A voir en fonction de la construction d'ensemble.
Bonne suite
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
4 févr. 2014 à 11:18
Bonjour Tessel 75 et le meruvien

Si je mets ma base sur le site, vous pourriez y jeter un coup d'oeil et me me dire ce que vous en pensez.
Cette base est destiné au restos du de mon département.
Les données 2012 et 2013 on été importées d'excel.

Je vos remercie
0
le meruvien
Messages postés
1037
Date d'inscription
vendredi 12 août 2011
Statut
Membre
Dernière intervention
12 mai 2022
43
4 févr. 2014 à 12:08
ben oui, mais essaye déjà ce que dit tessel75.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
Modifié par castours le 4/02/2014 à 19:28
Bonjour a vous deux
Pas reussi a faire ce que je voulais.
Je vous joins la base
Le probleme se pose entre le formulaire saisie ramasse et le champs PoidsJours de la table T_DateSaisie.
Les données de la table Date saisie ont ete importé d'excel.
Je vous remercie de votre aide.
https://www.cjoint.com/?DBettYedeXK
0
Bonsoir Castours, (Bonsoir Méruvien)
Je me suis penché sur ta base.
Je ne comprends pas pourquoi tu tiens tant à avoir une table "T_DateSaisie" alors que tu dispose de toutes données équivalentes dans la Table "T_Ramasse". Comme je disais tu peux parfaitement travailler avec cette seule dernière table.
J'ai fait un essai en créant une requête qui remplace avantageusement la requête-source du formulaire "F_SaisieRamasse" à partir de "T_Ramasse" ,
"SELECT Format([DateSaisieRam],"mm") AS N°Mois, Format([DateSaisieRam],"ww") AS N°Sem, Format([DateSaisieRam],"mmmm") AS Mois, Format([DateSaisieRam],"yyyy") AS Année, Format([DateSaisieRam],"yy") AS N°Jours, T_Ramasse.DateSaisieRam, Sum(T_Ramasse.[Poids Livré]) AS [SommeDePoids Livré] FROM T_Ramasse GROUP BY T_Ramasse.DateSaisieRam ORDER BY T_Ramasse.DateSaisieRam DESC;"

Et il y a également possibilité de remplacer l'équation du champ "Poids A" par un champ calculé de formule:
"=SomDom("[Poids Livré]";"T_Ramasse";"[DateSaisieRam]= forms!F_SaisieRamasse![DateSaisie]")"
, testée, qui marche parfaitement bien et suit la succession des valeurs du formulaire principal "F_SaisieRamasse"
Pour ce qui est de l'utilisation de cette donnée pour le reste des calculs des autres formulaires et des états, il te suffit d'utiliser le résultat de la requête que je te propose.
Ce n'est pas exactement ce que tu cherchais à faire mais ça s'y substitue avantageusement. Maintenant si tu tiens absolument à l'architecture actuelle, il te suffit de construire une requête-MàJ à partir de la requête proposée pour entrer le poids quotidien dans la table "T_DateSaisie", mais je répète que je la trouve inutile.
Bonne suite
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
5 févr. 2014 à 15:45
Bonjour Tesser75
Je viens d'essayé la requete, elle fonctionne bien pour une analyse.
J'ai créé un formulaire avec cette requete et un sous formulaire avec la table ramasse.la creation c'est bien faite mais problemevu que la requete est issue d'une requete de regroupement, je ne peux pas créer de nouveaux enregistrement avec une nouvelle date.
0
Bonsoir,
C'est exact! J'y ai repensé aujourd'hui parce qu'hier il était trop tard.
En fait, on peut envisager 2 solutions.
1) Avec une table T_Date, impossible d'y échapper parce que le RecordSet de la requête n'est pas modifiable et donc il n'est pas possible d'ajouter des enregistrements. Dans ces conditions, on peut limiter cette table (T_DateSaisie) à 2 champs : DateRamasse, N°Date. Alors le lien entre le formulaire principal "F_SaisieRamasse" et les sous-formulaires "S/F_Ramasses" peut être assuré par le champ "N°Date" et un champ "N°DateSaisieRam".
2) Une autre solution serait d'enregistrer toutes les livraisons ou ramassages dans un formulaire sans ss/formulaire. Alors tous les enregistrements sont considérés comme indépendants les uns des autres et les données de références (restaurants, donateurs, etc ...) sont entrés par listes déroulantes. Alors tu peux avoir un formulaire en lecture seule qui regroupe les livraisons et ramassages par date. J'utilise en ce moment un système de ce genre où on peut entrer les mêmes données par 2 formulaires au choix selon ce qui est le plus rapide et le plus pratique pour ce qu'on a à faire , il s'agit d' enregistrer les absences programmées d'une catégorie de personnel, soit par personne avec un couple formulaire/sous-formulaires, soit par formulaire simple. Dans la pratique, j'enregistre les demandes avec le formulaire simple, par contre j'utilise le formulaire/ss-formulaire pour lire et rechercher les absences enregistrées.
La 2ème solution a de loin ma préférence.
Pour voir le fond du problème, tu peux regarder les échanges que nous avions eu l'un et l'autre avec une internaute québecoise l'année dernière à propos d'un problème assez similaire.
http://www.commentcamarche.net/forum/affich-27190257-formulaire-enregistrement-liste-deroulante-les-champ-lies


Bon courage
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
8 févr. 2014 à 00:19
Bonsoir tessel 75
Mon probleme n'est toujours pas regler.
Avec l'aide de d'autres forums, on m'a soumis cette procedure qui 2 a 3 fois puis plus rien

Private Sub Form_AfterUpdate()

Forms!F_SaisieRamasse.PoidsJoursCalculé = DSum("[Poids Livré]", "T_Ramasse", "[DateSaisieRam]=#" & Me.DateSaisieRam & "# And [N°ListRam]=" & Me.N°ListRam)

End Sub
Cette procedure a été mise dans le sous formulaire.
Sa bloque au niveau du transfert du champs calculé du sous formulaire dans le champ du formulaire. Si on met un nombre manuellement , cela transmet dans la table
Merci de votre aide
0
Bonsoir Castours,
Je ne comprends pas ton insistance à vouloir casser et reprendre ce qui marche déjà très correctement.
Ta formule initiale en pied de formulaire marche parfaitement, je ne vois donc pas l'intérêt d'en chercher une autre plus compliquée qui peut-être fonctionne aussi bien mais certainement pas mieux puisque que la 1ère est déjà parfaite. Donc, cette autre formule, qui vaut ce qu'elle vaut, tu peux l'ignorer parce qu'elle n'apporte rien.
Comme tu dis:"Mon problème n'est toujours pas régler. "
Effectivement, parce que ce n'est pas là ta difficulté. Ta difficulté est d'entrer la valeur somme(PoidsRamassage/Jours) dans ta table "T_DateSaisie". Je persiste à penser que cette manoeuvre est inutile et plus encombrante qu'autre chose parce qu'il y a moyen de passer outre grâce à la requête que je t'ai proposée et qui est extrêmement rapide dans son exécution.

Je te renvoie ci-joint la base avec quelques propositions (tout est marqué par le suffixe "Prop", Tables, Requêtes et Formulaires) qui illustrent ce que je veux dire que je te conseille d'avoir 2 formulaires. L'un appelé "F_SaisieRamasses-Prop" permet de saisir les données à la chaine sans se préoccuper de leur ordre, l'autre "F_SelectionDateSaisie_Prop" permet de retrouver (et d'entrer) les données classées par date. A chaque fois un champs calculé permet de savoir le poids total du jour.
Bonne suite

http://cjoint.com/?3Bjq45x1jKP


PS: Je ne donne pas d'autres indications, tu es suffisamment connaisseur pour comprendre comment requêtes et formulaires sont construits.
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
9 févr. 2014 à 22:21
Bonsoir tessel75
Je te remercie beaucoup de ton aide pour ce projet.
Je vais regardai ta proposition de plus prés.
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
9 févr. 2014 à 22:27
Le lien que tu m'as envoyé ne s'ouvre pas. Sur le site il devrait etre en bleu.
Encore merci
0
J'ouvre la base parfaitement, mais je reconnais qu'il faut enregistrer le lien auparavant
Je ne sais pas pourquoi, certaines fois ça s'ouvre directement et d'autres pas.
Je te remets le lien. Je n'arrive pas à le mettre en caractères hypertexte, il suffit de balayer et copier/coller sur la barre d'adresse.

http://cjoint.com/?3BkadI6EvQs
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
10 févr. 2014 à 10:15
Bonjour tesser75
Maintenant j'ouvre bien c_joint mais la base est illisible.
La base doit compressée en zip, puis tu fais le lien c_joint. Tu copies le lien et tu le colles dans c_joint. C'est comme cela que je fais.
0
Désolé! je n'ai jamais fait la manoeuvre, (j'ai déjà décompressé mais pas compressé un fichier). Je m'y remets ce soir. Je dois partir au boulot.
A +
0
http://cjoint.com/?DBkw27XVWth

OK! J'espère que ce coup-ci sera le bon!
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
10 févr. 2014 à 23:33
bonsoir Tessel75
Désolé cela ne fonctionne pas.
Au moment de l'envoi dans cjoint le lien doit se colorer en bleu, sinon la liaison est mal faite au niveau de la créeation du lien.Cjoint n'accepte pas les fichiers mdb d'access. A sa création il doit etre bleu. C'est pourquoi il faut les compresser avec Winzip.. Cest avec ce fichier zip que tu créais le lien de cjoint..
Encore merci d'avoir consacré du temps pour m'aider
0
Le lien est bien fait. Quand j'essaie de l'ouvrir directement sur ma machine, il n'y a pas de problème, Et pas davantage quand j'enregistre dans un autre dossier que celui d'origine et que j'essaie d'ouvrir.
De toute façon, je ne peux pas copier le lien avec le bouton de Cjoint, même si mon navigateur est FireFox.
Comme j'ai dit auparavant il faut balayer le lien, le copier et le coller dans la barre d'adresse. je fais toujours comme ça sans difficulté. Essaye
Quel est ton navigateur?
Ou bien explique-moi comment rendre en mode LienHyperTexte les lien posé sur CCM.
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
11 févr. 2014 à 01:14
Voila comment je fais
Une fois ton fichier est compressé en zip, depuis cjoint tu le charges , tu créais le lien. Un lien réussi dans cjoint est en bleu. Tu fais copier avec la souris puis tu le colles dans cjoint. pour me le faire parvenir.
Tu n'utilises pas le bouton de cjoint :coller le lien
0
http://cjoint.com/?3BlbHKX3B1h

Le lien est bien en bleu dans Cjoint; pas de problème avec ça. C'est en collant qu'il ne se met pas en HyperTexte. Et je ne comprends pas pourquoi.
J'ai fait mon maximum, y compris en changeant de navigateur Firefox --> Google
0
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
216
11 févr. 2014 à 09:57
Bonjour
Je te remercie quand meme de tous les efforts que tu as fait pour m'aider. Personnellement je nevois pas pourquoi il y un disfonctionnement entre le copier et le coller dans cjoint..
Je considere le dossier clos.
A une prochaine fois sur comment ça marche.
Tu es de quel region? moi de touraine en france
0