Avatar billede akirkeby Nybegynder
19. januar 2007 - 20:31 Der er 8 kommentarer og
1 løsning

DSum - beregning løbende sum

Hej

Jeg vil gerne have Access til at beregne en løbende sum. Problemstillingen er lidt forenklet, at jeg har nogle lagertransaktioner og en startsaldo - men jeg vil gerne have saldoen pr. dag.

Resultatet skal se sådan ud:
Dato varenr transaktion saldo
30/1 Æble    +10          +10 
1/2  Æble    -5          +5
5/2  Æble    +100        +105
28/1 Pære    +10          +10
1/2  Pære    +8          +18

Den skal altså lave en løbende sum indenfor æbler, hvor den starter med den første dato og så løbende summerer op indtil det næste varenummer i rækken.

Jeg har forsøgt med følgende i min udvælgelsesforespørgsel:

Forventet beh: DSum("[Transaktion]";"Transaktioner";"[Transaktionsdato]<= #" & [Dato] & "#" And "[Vare]='" & [Varenr] & "'")

Den er meget sløv, og jeg har efterhånden prøvet et par forskellige variationer - uden det helt store gennembrud.

Er der nogen, som har en god løsning på problematikken?
Avatar billede mugs Novice
19. januar 2007 - 20:39 #1
Prøv at bruge "guiden rapport" og lad den opsummere og grupper.
Avatar billede akirkeby Nybegynder
19. januar 2007 - 20:44 #2
Det skal ende med at stå i en tabel, da det bare er det første step i en større udregning. Jeg var så bare så uheldig, at mit udtræk ikke indholder saldi, men kun transaktioner.
Avatar billede terry Ekspert
21. januar 2007 - 09:37 #3
so what you are saying is your calculation (Dsum(.....) actually works but is very slow?
Some suggestion sto see if we can speed things up.
Put an index on the fields you use as criteria in Dsum (Dato + varenr)
Maybe changing dsum to a sub select where you select sum(Transaktion) might help.

Finally, although it shouldnt be necessary and would be the last thing I would do.
Add a field to the table which actually holds the saldo. Then when you make a transaction you can calculate the new current saldo by finding the previous saldo.
You would also need to use an update query to update your new saldo field for exising records.
Avatar billede akirkeby Nybegynder
21. januar 2007 - 13:26 #4
Nej Nej! - det virker ikke.

Min formel er udelukkende for at vise, hvordan jeg har prøvet på at få det til at virke.

Jeg er i tvivl, om det i det hele taget kan lade sig gøre.
Avatar billede akirkeby Nybegynder
21. januar 2007 - 13:33 #5
Jeg har aldrig før brugt DSum-funktionen.

Den virker meget følsom overfor de mindste små formatfejl eller lignende.

Det kan jo også være, at det er en anden funktion, som jeg skal have fat i.
Avatar billede akirkeby Nybegynder
21. januar 2007 - 15:12 #6
Tallene kan eksporteres til Excel, og herefter kan beregningen simpelt laves med en IF-sætning.

Det ville dog være væsentligt kønnere med en løsning i Access.

Men at dømme udfra svarene i denne tråd ser det ikke ud til at være en let opgave.
Avatar billede terry Ekspert
21. januar 2007 - 17:30 #7
we didnt get much time to give a solution. I asked if your dsum works?
"so what you are saying is your calculation (Dsum(.....) actually works but is very slow? ..."

The example you gave
DSum("[Transaktion]";"Transaktioner";"[Transaktionsdato]<= #" & [Dato] & "#" And "[Vare]='" & [Varenr] & "'")

looks about right, but as I dont have your database I cant be sure.

Normally dsum should work, and I dont see any problem in exporting it to Excel, but then thats the solution you have chosen.
Avatar billede akirkeby Nybegynder
22. januar 2007 - 17:47 #8
Ok det var unfair, at afslutte inden en egentlig Access-løsning var fundet.

Jeg var glad for at finde en løsning - sådan at jeg kunne komme videre.

Jeg takker for forsøget på at hjælpe mig - det er selvfølgelig svært uden at have min database.
Avatar billede terry Ekspert
22. januar 2007 - 19:55 #9
No problem, what is import is that you found a solution.
mvh
Terry
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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