---
title: "Momsproblem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/135000-momsproblem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Asa"
published: "2005-09-29T20:49:44.000Z"
updated: "2005-09-30T07:40:18.000Z"
replies: 29
views: 650
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/135000-momsproblem"
---

# Momsproblem

_Sida 1 av 2._

## #1 — Asa, 2005-09-29T20:49Z

Håller på med en shop och priset står som exkl moms i databasen. Finns även ett fält där momsen står för varje produkt. Står i heltal. Är det 6 % moms står det som 6 i databasen.

tabellen produkter:
produkt, moms, pris

tabellen kundvagn:
antal, pris, moms

Vill nu i kundvagnen lista alla produkter som man lagt iden och under det skall pris av produkerna stå. Efter det skall momsen stå. Ex så här:

\------------------------
PRODUKT - ANTAL - PRIS
\------------------------
produkten(6% moms) - 1 - 1200 
produkten(12% moms) - 1 - 1800
produkten(25% moms) - 1 - 750
produkten(6% moms) - 1 - 2200 
produkten(12% moms) - 1 - 400
produkten(25% moms) - 1 - 100
\------------------------
Summa: xxx
Moms 6%: xxx
Moms 12%: xxxx
Moms 25%: xxx
Inkl moms: xxx

Hur gör man detta på ett bra sätt? Vill oxå ha in så att man kan få rabatt på hela orderna på exkl moms priset. Ex man får 10 % rabatt. Hur göra detta?

Hoppas nån förstår hur jag menar.. Access databas använder jag.

Permalänk: https://www.webforum.nu/p/135000

## #2 — OveRRidE, 2005-09-29T20:59Z

Fråga: Där det står "Moms 6%" eller "Moms 12%"; ska det vara; 

1\. Momssumman för alla artiklar med denna procentsats moms?
2\. Summan av artiklarna med denna procentsats moms?

Permalänk: https://www.webforum.nu/p/1679625

## #3 — OveRRidE, 2005-09-29T21:12Z

Om nu svaret är alternativ 1, så skulle nog min lösning se ut ungefär såhär, typ (Nu kan alla SQL-gurus piska mig, då det antagligen går att få det direkt ur en SQL-sats ;)); 

```
<%
dim dic, rsprod, dSum, dMomsSum, key

set dic = server.createobject("scripting.dictionary")
dic.comparemode = 1

set rs = GetYourArticlesHere()

dSum = 0
while not rsprod.eof
   'det du vill skriva ut om din artikel
   response.write rsprod("artikel") & "<br>" 

   'beräkning
   if not dic.exists(rsprod("moms")) then dic.add rsprod("moms"), 0
   dic(rsprod("moms")) = CDbl(dic(rsprod("moms"))) + (CDbl((rsprod("pris")*rsprod("antal")) * (1+(rsprod("moms")/100))))
   dSum = dSum + (CDbl(rsprod("pris")*rsprod("antal")) * (1+(rsprod("moms")/100)))

rsprod.movenext
wend

'skriv ut summor
response.write "Summa: " & dSum & "<br>"

for each key in dic.keys
   dMomsSum = dMomsSum + CDbl(key)
   response.write "Moms " & key & "%: " & dic(key) & "<br>"
next

response.write "Summa moms: " & dMomsSum & "<br>"

set rsprod = nothing
set dic = nothing 
%>
```

Kanske inte är den mest läsbara koden, tyvärr. :l

Permalänk: https://www.webforum.nu/p/1679628

## #4 — Asa, 2005-09-29T21:18Z

Alternativ 1 är det som skall stå. Momssumman för varje produkt. Skall testa din kod och återkommer.

Permalänk: https://www.webforum.nu/p/1679629

## #5 — OveRRidE, 2005-09-29T21:23Z

> **Asa skrev:**
>
> Alternativ 1 är det som skall stå. Momssumman för varje produkt. Skall testa din kod och återkommer.

Momssumman för varje produkt? Borde det inte bli "totala summan av momsen för alla produkter med X% moms"?

Permalänk: https://www.webforum.nu/p/1679632

## #6 — Asa, 2005-09-29T21:23Z

Får detta felmess:
error '80020009'
Undantag inträffade.
/test.asp, line 30

På denna:
dMomsSum = dMomsSum + CDbl(key)

Permalänk: https://www.webforum.nu/p/1679633

## #7 — Asa, 2005-09-29T21:24Z

> **OveRRidE skrev:**
>
> Momssumman för varje produkt? Borde det inte bli "totala summan av momsen för alla produkter med X% moms"?

Joo.. så skall det vara. Skrev fel bara.

Permalänk: https://www.webforum.nu/p/1679635

## #8 — OveRRidE, 2005-09-29T21:36Z

Sätt en 

```
response.write key & "<br>"
response.flush
```

före den raden. Vad ger det?

Permalänk: https://www.webforum.nu/p/1679639

## #9 — Asa, 2005-09-29T21:38Z

Ingen skillnad :/

Permalänk: https://www.webforum.nu/p/1679641

## #10 — OveRRidE, 2005-09-29T21:43Z

Skriver den inte ut något? Är felet på exakt samma rad?

Permalänk: https://www.webforum.nu/p/1679644

## #11 — Asa, 2005-09-29T21:44Z

Felet är samma men nu på denna: response.write key & "\<br\>"

```
<%
Session("session_kundID") = 1
dim dic, rsprod, dSum, dMomsSum, key

set dic = server.createobject("scripting.dictionary")
dic.comparemode = 1

set rsprod = Conn.Execute("SELECT produkt,pris,moms,antal FROM shop_asp_temp WHERE sID=" & Session("session_kundID"))

dSum = 0
while not rsprod.eof
   'det du vill skriva ut om din artikel
   response.write rsprod("produkt") & " / " & rsprod("pris") & "kr / " & rsprod("antal") & "st<br>" 

   'beräkning
   if not dic.exists(rsprod("moms")) then dic.add rsprod("moms"), 0
   dic(rsprod("moms")) = CDbl(dic(rsprod("moms"))) + (CDbl((rsprod("pris")*rsprod("antal")) * (1+(rsprod("moms")/100))))
   dSum = dSum + (CDbl(rsprod("pris")*rsprod("antal")) * (1+(rsprod("moms")/100)))

rsprod.movenext
wend

'skriv ut summor
response.write "Summa: " & dSum & "<br>"

for each key in dic.keys
   response.write key & "<br>"
   response.flush
   dMomsSum = dMomsSum + CDbl(key)
   response.write "Moms " & key & "%: " & dic(key) & "<br>"
next

response.write "Summa moms: " & dMomsSum & "<br>"

set rsprod = nothing
set dic = nothing 
%>
```

Permalänk: https://www.webforum.nu/p/1679645

## #12 — OveRRidE, 2005-09-29T21:46Z

Innan "For each...", skriv 

```
response.write "c: " & dic.count
```

/red. Ah, nej vänta! Jag vet vad det beror på. Dictionary's med nycklar namngivna på det sätt som jag gjort (inte som definitiv eller typkonverterad sträng), kan bugga ur på det där sättet. 

Byt ut motsvarande rader mot dessa: 

```
'beräkning
   if not dic.exists("m" & rsprod("moms")) then dic.add "m" & rsprod("moms"), 0
   dic("m" & rsprod("moms")) = CDbl(dic("m" & rsprod("moms"))) + (CDbl((rsprod("pris")*rsprod("antal")) * (1+(rsprod("moms")/100))))
```

Permalänk: https://www.webforum.nu/p/1679647

## #13 — Asa, 2005-09-29T21:49Z

Nu skriver den ut **c: 1** innan felmesset kommer.

Permalänk: https://www.webforum.nu/p/1679649

## #14 — Asa, 2005-09-29T21:50Z

Summan i uträkningen som står innan momserna kommer skall vara utan moms. alltså plussa bara ihop produkternas summor.

Sen en If sats ifall rabatt finns skall den räkna på ett sätt och finns det ej skall den räkna på annat sätt.

Permalänk: https://www.webforum.nu/p/1679650

## #15 — OveRRidE, 2005-09-29T21:52Z

Observera min redigering av mitt förra inlägg. 

Nu måste jag tyvärr gå och lägga mig. Återkommer imorgon om jag har tid. Lycka till! :)

/red. Jag kom på att det kan ställa till det lite ifall du har momssummor på produkterna som är decimal tal. Det innebär att nycklarna i Dictionary't innehåller specialtecken (komma), vilket jag inte tror är tillåtet. En replace borde ordna det dock.

Permalänk: https://www.webforum.nu/p/1679651

## #16 — Asa, 2005-09-29T21:53Z

Körningsfel i Microsoft VBScript error '800a000d'
Inkompatibla typer: 'CDbl'
/test.asp, line 33

Denna rad:
dMomsSum = dMomsSum + CDbl(key)

Permalänk: https://www.webforum.nu/p/1679652

## #17 — OveRRidE, 2005-09-29T21:54Z

Okej, en sista. 

```
dMomsSum = dMomsSum + CDbl(mid(key,2,len(key))
```

Permalänk: https://www.webforum.nu/p/1679653

## #18 — Asa, 2005-09-29T21:58Z

Nu skriver den ut utan problem fast momserna blev fel. Skriver ut så här:

```
Produkt med 25 % moms / 2360kr / 1st
Produkt med 12 % moms / 2360kr / 1st
Produkt med 6 % moms / 2360kr / 1st
Produkt utan moms / 2360kr / 1st

Summa: 10454,8
Moms 25%: 2950
Moms 12%: 2643,2
Moms 6%: 2501,6
Moms 0%: 2360
Summa moms: 43
```

Permalänk: https://www.webforum.nu/p/1679654

## #19 — Asa, 2005-09-29T22:00Z

Summa skall vara alla produkternas pris tillsammans. Exkl moms. Alltså bara att räkna ihop dem.

Moms 25% skall vara momsen på de produkter som har momssats 25%. Alltså i detta fall skall momsen vara 0.25 \* 2360 ??

Moms 12% skall vara momsen på de produkter som har momssats 12%. Alltså i detta fall skall momsen vara 0.12 \* 2360 ??

Moms 6% skall vara momsen på de produkter som har momssats 3%. Alltså i detta fall skall momsen vara 0.06 \* 2360 ??

Moms 0% skall vara momsen på de produkter som har momssats 0%. Alltså i detta fall skall momsen vara 0 ??

Sen summa moms totalt räknar man bara ihop de summor de olika momssatserna ger.

Sen Total summa inkl moms skall oxå finnas med.

Har jag helt fel när jag tänker så?

Permalänk: https://www.webforum.nu/p/1679656

## #20 — UlfT, 2005-09-29T22:03Z

Totalsumman inklusive moms, blev uppenbarligen rätt. Frågan är alltså var 43 kom från. Sedan har du adderat priset till de olika momsposterna. Men så hade du kanske tänkt dig det?

Permalänk: https://www.webforum.nu/p/1679658

---

Tråden på webben: https://www.webforum.nu/amne/asp/135000-momsproblem  
Nästa sida: https://www.webforum.nu/amne/asp/135000-momsproblem/page2.md
