|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Messaoud RouabhaÉtudiant Inscription : janvier 2012 Messages : 18 ![]() |
Bonjours à tous.
Dans une base de données Access j'ais deux tables tblCommandes et tblVersements qui se présentent comme suit: tblCommandes Code :
Code :
Comment faire pour afficher dans une requête le reste à payer pour chaque commende c.à.d nous devons avoir (pour notre exemple) dans la requête ce qui suit: Code :
|
||||||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 598 ![]() |
Bonjour
Ta structure n'est pas adaptée : il faudrait reprendre le numéro de commande dans les versement et établir une relation entre les tables. Travailler par ordre chrono n'est pas une bonne méthode. |
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Messaoud RouabhaÉtudiant Inscription : janvier 2012 Messages : 18 ![]() |
Bon soir 'conseil' et merci pour votre réponse; mais les deux tables sont totalement indépendantes car chaque commande peut être payée en tranches ( Versements ).
De ce fait dans l'exemple précédant, la commande N 1 qui vaut 50 000 est payée en trois tranches ( Versements ): Versement N 1 qui vaut 10 000 Versement N 2 qui vaut 20 000 Versement N 3 qui vaut 40 000 qui ont un total de 70 000 ( 50 000 pour payer la commande N 1 et 20 000 sera reporter pour la commande suivante N 2 ). et ainsi de suite. |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 598 ![]() |
Bonjour
Justement dans ce cas on fait une relation de 1 à n. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Messaoud RouabhaÉtudiant Inscription : janvier 2012 Messages : 18 ![]() |
Bonjour 'Conseil'.
Vous n'avez pas bien compris mon problème. les versements se font independemment des commandes, nous ne préciserons pas à chaque fois que nous saisissons une versement que tel versement concerne tel commande ce la est laisser à access de le déterminer. Il doit à chaque fois comparer la somme cumulative des commandes et la somme cumulative des versements et déterminer quelles sont les commandes qui ne sont pas encore payées en affichant le reste de chaqu'une. j’espère que c'est claire; analyser bien les deux exemple précédents. |
|
|
00
|
|
|
#6 |
![]() ![]() |
Bonjour
C'est clair, sauf qu'il faut bien savoir à quelle commande est lié le ou les versements. Or ce qui n'est pas ton cas dans ton exemple, car il n'y a pas de notions d'ordres dans une table, si tu changes l'ordre, tout est faux. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : février 2012 Messages : 6 ![]() |
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Messaoud RouabhaÉtudiant Inscription : janvier 2012 Messages : 18 ![]() |
Mon problème est que je voudrais avoir le reste de chaque commande sans savoir aux quelles versements est liée.
je pense que nous devons passer par une fonction. |
|
|
00
|
|
|
#9 | |
![]() ![]() |
Re
Citation:
Une fonction n'y changera rien. Tu as un problème de conception au départ, et ce n'est pas la faute d'Access, tu auras le même problème quelque soit la base de données. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 598 ![]() |
Bonjour
Si tu n'utilises aucun des principes de la base de données, autant faire un tableau Excel où l'aspect topographique est la norme. Comme le rappelle Philippe JOCHMANS, il n'y a pas d'ordre dans une table. La certitude de prendre les commandes et les réglements dans le même ordre n'est donc pas présente. Tes numéros de commande et de versement sont-ils des numéros auto et la clé primaire de chaque table ? Si oui on peut les utiliser, si non, il manque une date dans chaque table ou autre moyen de tracer l'ordre des enregistrements. Et à part par VBA, je ne vois pas de solution. |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Messaoud RouabhaÉtudiant Inscription : janvier 2012 Messages : 18 ![]() |
Oui les numéros des commandes et les numéros des versements sont des num auto et sont aussi les clés primaires des deux tables.
Pourriez vous me dire quelles sont les modifications à faire pour avoir les résultats voulus ( avec détails ). J'attend des suggestions car je suis sure qu'il y a des solutions dans access. |
|
|
00
|
|
|
#12 | |
![]() ![]() |
Re
Citation:
Exemple : Je prends la première commande (NumAuto = 1) dans ta première table, donc le premier versement devrait être (NumAuto = 1) dans la deuxième table, mais le deuxième versement appartient toujours à la première commande où est-ce le premier de la deuxième commande ? A priori tu n'as aucun moyen de savoir, non ? Si c'est le cas, pas de solution. Donc un problème de conception au départ. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 188 ![]() |
Bonjour à tous,
Comme dit précédemment, le mieux est de passer de ta structure (souligné=clé primaire, #=clé étrangère) : Commande(NCommande, Total, Reste à payer ...) ;à cette structure : Commande(NCommande, Total, Reste à payer ...) ;Si tu ne veux (peux) pas, alors il te faudra passer par du code. Je ne connais pas VBA, mais l'algorithme devrait être le suivant : Montant_Reliquat=0Pas testé du tout... mais, je pense que tu peux comprendre l'idée, Mouhamadrouabha : à toi de la peaufiner... Ensuite, une bonne âme codeuse pourra, peut-être, t'aider...
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#14 | |||
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 598 ![]() |
Bonjour
Citation:
Code :
Edit 2 : salut Richard, je ne t'avais pas vu |
|||
|
|
00
|
|
|
#15 |
![]() ![]() |
Re
@78chris J'ai du mal à comprendre ton cheminement, peux-tu détailler ? Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#16 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 598 ![]() |
Bonjour
Ta question amène une correction sur la requête 2 Code :
SELECT cdes.N°, cdes.montant, CDbl(DSum("[montant]","cdes","N° <=" & [N°])) AS Cumul, IIf([Cumul]-[TotalVersements]<0,0,IIf([Cumul]-[TotalVersements]>=[Montant],[Montant],[Cumul]-[TotalVersements])) AS Solde_a_régler FROM cdes, VersTot ORDER BY cdes.N°; Ensuite en prenant les commandes dans l'ordre des numéros je calcule le cumul par une fonction somdom. Si ce cumul est < à la somme des versements, la commande est payée, au delà on calcule l'écart cumul - total des versement. Cela donne le reste à régler (global) : si cet écart est supérieur au montant de la facture on prend le montant de la facture.
__________________
Chris ---------------------------------------------------------------------------------------------- En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...
|
|
|
10
|
|
|
#17 | |
![]() ![]() |
Re
Oui, mais tu ne prends pas en compte cette hypothèse : Citation:
Si la première est soldée et la deuxième nom et la troisième oui ? Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
|
00
|
|
|
#18 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 598 ![]() |
Bonjour
Philippe : je suis d'accord avec toi mais si j'ai bien compris la façon dont travaille mouhamadrouabha, il part du principe que les versement apurent le compte commandes dans l'ordre de celles-ci, point barre. Et si je me réfère à son attente telle que décrite dans le 1er post, mes requêtes donnent exactement cela. C'est une gestion assez peu orthodoxe et surtout illégale dans notre système comptable. Mais cela m'a amusé de cherché une solution alors que ma première réaction était "pas logique donc pas possible "
__________________
Chris ---------------------------------------------------------------------------------------------- En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...
|
|
|
00
|
|
|
#19 |
![]() ![]() |
Re
Si je prends l'exemple dans la première discussion, c'est loin d'être gagné. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#20 |
|
Membre émérite
![]() ![]() Conseil + Formation Inscription : février 2010 Messages : 598 ![]() |
Re
J'ai ajouté une facture.
__________________
Chris ---------------------------------------------------------------------------------------------- En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com