Avatar billede peterscl Juniormester
20. april 2017 - 08:38 Der er 8 kommentarer og
1 løsning

Beregning i en tabel via udtrtksgenerator

Jeg har en tabel hvor jeg ønsker at tilføje et beregnet fejl. Fejlet skal beregne en sum udfra de øvrige felter:

Tabellen er en liste med Tilbud, varer, antal og pris - og det er en sum på antal jeg skal bruge - Samme varer kan være med flere gang i samme tilbud og det er den samlet antal pr varer, pr tilbud:

Se ex.

Tilbud  Kunde  Varernr  Antal  Pris    Sum_antal (beregningsfelt)
1          A          10          5 stk  100,-  12 stk (5+7=12)
1          A          10          7 stk  150,-  12 stk (5+7=12)
1          A          20          3 stk    50,-    3 stk
2          A          10          10 stk  200,-  10 stk

Sum_antal skal sammenlægge de første 2 linjer fordi det er samme tilbud og samme varer. Hvis jeg tilføjet en linje mere i tilbud 1 på kunde A og vare 10 men 10 stk så skal Sum_antal feltet ændres til 22 stk på alle linjer.
Avatar billede AOlsen Juniormester
20. april 2017 - 09:34 #1
Du kan bruge sum.hvis funktionen.

Placer dit eksempel i A1 og udfør følgende i kolonne E1-E4:
=SUM.HVISER(C:C;A:A;A1;B:B;B1)
=SUM.HVISER(C:C;A:A;A2;B:B;B2)
=SUM.HVISER(C:C;A:A;A3;B:B;B3)
=SUM.HVISER(C:C;A:A;A4;B:B;B4)

Her står at du skal summe alle værdier i C kolonnenn for alle rækker hvor A kolonnen er lig A1 og B kolonnen = B1.
Avatar billede terry Ekspert
20. april 2017 - 10:38 #2
There's a number of ways you could do this but heres one.

First make a Query which sums Antal for eacj Tilbud, Kunde, vare.

SELECT tbl1.Tilbud, tbl1.Kunde, tbl1.Varennr, Sum(tbl1.Antal) AS SumOfAntal
FROM tbl1
GROUP BY tbl1.Tilbud, tbl1.Kunde, tbl1.Varennr;

Now make another Query
SELECT tbl1.Tilbud, tbl1.Kunde, tbl1.Varennr, tbl1.Antal, tbl1.Pris, qryTotAntal.SumOfAntal
FROM tbl1 INNER JOIN qryTotAntal ON (tbl1.Varennr = qryTotAntal.Varennr) AND (tbl1.Kunde = qryTotAntal.Kunde) AND (tbl1.Tilbud = qryTotAntal.Tilbud);
Avatar billede terry Ekspert
20. april 2017 - 10:39 #3
In the example the table is named tbl1 an dthe first Query is named qryTotAntal
Avatar billede peterscl Juniormester
20. april 2017 - 12:56 #4
Hi both,

AOlsen - Det er i Access og ikke i Excel.

Terry - (thanks for your support last time). I have also made it work by using a Query but I will like to do it in the table using the "udtryksgenerator"
Can this be done?
Avatar billede terry Ekspert
20. april 2017 - 18:26 #5
As far as I am aware it can not be done using "udtryksgenerator".

Normally calculated fields are used in queries not directly in tables.
Avatar billede terry Ekspert
20. april 2017 - 18:43 #6
In table design there is a "standarværdi" field, even if you could us the "udtrtksgenerator" to give a "standarværdi" this would only be for the initial value when the record is created. It would not be updated when a new tilbud for same vare/kunde is added to table. This would require vba code to update, so using a Query is the way to do it. Also, having a field in a table to which contains calculated values is going away from correct dB/table design.
Avatar billede terry Ekspert
21. april 2017 - 10:15 #7
Normally data will be added to tbale through a form, here you could use vba to update your calculated field, but Again you woul dhave to alos use code to update any related records if antal is change or added through new records.
Avatar billede peterscl Juniormester
21. april 2017 - 11:34 #8
Hi Terry.
Thanks for your input... I will find a solution for it...
Avatar billede terry Ekspert
21. april 2017 - 11:37 #9
" I will find a solution for it"
Do you mean to use the "udtryksgenerator"?

I hope you can, let us know how it goes.

And thank you ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester