|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() beauchat symba Inscription : janvier 2010 Messages : 95 ![]() |
Bonjour à tous
J'ai 1) une Table Devis où je stocke le champHTDevis Réel Double 2) une Table LignesDevis Un Formulaire: Devis et un s/s Formulaire Continu: LignesDevis la relation qui lie les 2 tables :K_N°Devis J'ai un champTotalLignes dans le pieds du s/s formulaire qui me donne le Total des Lignes du s/s formulaire Je récupère ce champTotalLignes pour le stocké dans la Table Devis champHTDevis=champTotalLignes Tout beigne nickel jusque là... Mes tests sont Tip Top Puis...pour voir Je fais un test sur 55 lignes avec la valeur 1 Mon champTotalLignes affiche bien 55 dans le pied du s/s formulaire Mes 55 lignes sont bien présentes dans la Table des Lignes Mais j'ai plus rien dans ma table Devis: le champHTDevis est à 0 Alors je fais une msgbox pour me renvoyer le champTotalLignes et bizarre j'ai rien dans la msgbox Quelqu'un a t-il déjà eu ce genre de truc ? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
hello
c'est vraisemblablement un problème de timing: quand le champ champHTDevis est affiché, le champTotalLignes n'est pas encore calculé ensuite ta formule ne stocke pas le total dans la table des entêtes mais ne fais qu'afficher la case du pied de sousformulaire pour faire ta récupération, je te conseille: - dans l'entête, utiliser champHTDevis comme source - sur un évènement (bouton j'ai fini ou champTotalLignes_sortie) ta petite formule en VB champHTDevis=champTotalLignes qui à ce moment là, est une affectation
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() beauchat symba Inscription : janvier 2010 Messages : 95 ![]() |
Merci Simplifi
mais je ne crois pas à un pb de Timing car mon champ calculé champTotalHT m'affiche bien 55 dans le pied du s/s formulaire Donc la calcul se fait bien Mais quand je veux afficher ce calcul dans une msgbox piège (qui me renvoie bien d'habitude le calcul champTotalHT) j'ai rien,nada Conclusion : j'ai 55 lignes avec pour valeur 1 à chaque ligne(pourtant, ça marche avec des valeur bien supérieures) Je suis à cours d'idées |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
as tu essayé avec Me.LignesDevis.champTotalLignes ?
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() beauchat symba Inscription : janvier 2010 Messages : 95 ![]() |
Merci SimplifI
Je rame depuis ce matin Je veux afficher dans une Msgbox un Total (champ calculé dans le pied d'un sous-formulaire) Je précise que ce Total est bien visible dans le pied de sous-formulaire Si il y a 6 enregistrements dans le sous-formulaire la Msgbox m'affiche bien le Total avec 13 chiffres après la virgule Si il y a 7 enregistrements la MsgBox n'affiche plus rien |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
hello
vu comme ça, à distance je ne sais pas t'en dire plus. essaye de poster un extrait de ta base (en zip)
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() beauchat symba Inscription : janvier 2010 Messages : 95 ![]() |
Bonjour Simplifi et à la communauté
Bon j'ai créer une base toute simple pour reproduire la mécanique de mon PB: T_Devis K_NumDevis(compteur) Nom DateDevis HTDevis (réel double) T_DevisLignes K_DevisLignes(Compteur) K_NumDevis(EntierLong)Liaison Description Qté (réel double) Pu (réel double) R_Devis (Requête sur T_Devis) R_DevisLignes (Requête sur R_Devis & T_DevisLignes) F_Devis Alimenté par R_Devis F_sousFormulaire Alimenté par R_DevisLignes J'incruste le sous formulaire dans le Formulaire Champs père&Fils K_NumDevis Dans le pied du Formulaire je pose : 1) champ zdtTotalLignes =[F_sousFormulaire].[Formulaire]![TotalLignes] (j'écris bien la propriété .[Formulaire] comme ceci.Form mais Access la corrige sans me demander mon avis ) 2) le champ HTDevis 3) un bouton d'assignation HTDevis=zdtTotalLignes |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() beauchat symba Inscription : janvier 2010 Messages : 95 ![]() |
Bonjour Simplifi et à la communauté
Bon j'ai créer une base toute simple pour reproduire la mécanique de mon PB: T_Devis K_NumDevis(compteur) Nom DateDevis HTDevis (réel double) T_DevisLignes K_DevisLignes(Compteur) K_NumDevis(EntierLong)Liaison Description Qté (réel double) Pu (réel double) R_Devis (Requête sur T_Devis) R_DevisLignes (Requête sur R_Devis & T_DevisLignes) F_Devis Alimenté par R_Devis F_sousFormulaire Alimenté par R_DevisLignes qui me fait le calcul sousTotalLigne:[Qté]*[Pu] et un dans le pied TotalLignes =Somme(sousTotalLigne) J'incruste le sous formulaire dans le Formulaire Champs père&Fils K_NumDevis Dans le pied du Formulaire je pose : 1) champ zdtTotalLignes =[F_sousFormulaire].[Formulaire]![TotalLignes] (j'écris bien la propriété .[Formulaire] comme ceci.Form mais Access la corrige sans me demander mon avis ) 2) le champ HTDevis 3) un bouton d'assignation Me.Recalc Me.HTDevis=Me.zdtTotalLignes Si j'ai quelques Enregistrements ça marche bien Si j'en ai disons une douzaine c'est un 0 qui est envoyer à HTDevis et seulement aprés le calcul s'affiche bien dans zdtTotalLignes Conclusion: c'est bien un Pb de Timing mais comment le résoudre ??????? Eh oui Simplifi tu avais vu juste dés le début ! |
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
je fais la même chose que toi en bas de mes devis, commande BL, Factures avec un bouton qui s'appelle j'ai fini (je veux faire la somme dont voici le VB Code :
__________________
-------------------Simplifi----------comme si tout était simple-------- |
||
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() beauchat symba Inscription : janvier 2010 Messages : 95 ![]() |
Merci Simplifi pour ton ton code !
Entre temps voici ce que j'ai trouvé J'avais bien dés le début appliqué un Recalc surChangement pour les champs Qté et Pu mais mon curseur était renvoyé à chaque fois en haut de mon sousFormulaire (ce qui n'est pas normal car Recalc ne doit pas faire ça) et puis pas du tout convivial d'avoir à se replacer à chaque changement ! En fait c'est parce-que je j'ouvrais mon FormulairePrincipal à partir d'une liste de Devis avec un Bouton doter d'un linkcriteria (clause where). J'ai donc supprimer la clause where et utiliser un OpenArgs pour l'ouverture de mon FormulairePrincipal (j'ai transformer la requête qui alimente mon Devis en Requête Param,-en critères sur K_NumDevis j'ai placer le code :[Forms]![FormulairePrincipal].[OpenArgs]) Et voilà mon curseur ne saute plus L'assignation sur Unload du FormulairePrincipal: HTDevis=TotalHT des Lignes du devis se fait TipTop L'opérateur peut même fermer le Formulaire sans avoir valider le petit crayon de la Ligne Devis le changement est quand même pris en compte Ouf! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com