---
title: "If sats"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/110066-if-sats"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Ivar"
published: "2004-08-26T10:56:44.000Z"
updated: "2004-08-27T19:17:29.000Z"
replies: 9
views: 403
page: 1
pages: 1
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/110066-if-sats"
---

# If sats

## #1 — Ivar, 2004-08-26T10:56Z

Hej,
Hur kan jag lösa den här If satsen?

 If totalPris \< 1000 Then
	totalPris = Pris + 100
	else
	totalPris = pris + Pris 
end if

Alltså om kunden beställer varor som är mindre en 1000 kr då ska frakt med 100kr
Problemet är att det kan finnas flera beställningar som är typ 750 + 750 = 1500 
Då blir det fel

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

## #2 — Jesper T, 2004-08-26T11:06Z

pris(1200)
returnerar 1200
pris(800)
returnerar 900

```
function pris(kr)
Dim frakt : frakt = 100 'Frakt 100kr
    if clng(kr) < 1000 then 'Priset är under 1000kr, lägg på frakt
        pris=clng(kr)+frakt
    else 'Priset är över 1000kr lägg inte på frakt.
        pris=kr
    end if
end function
```

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

## #3 — Ivar, 2004-08-26T20:41Z

Här är hella koden:

```
'lagra beställning och kundinformation i databasen.

dbp=Server.MapPath ("t1tant0mat.mdb")

set my_conn = Server.CreateObject("ADODB.Connection")
my_Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + dbp

'***************** lägg in kunden i kunddatabasen ***************************
lista = my_Conn.Execute ("SELECT * FROM kunder ORDER BY KundID Desc;")

KundID = lista("KundID") +1

SQLStmt = "INSERT INTO kunder (KundID, Namn, Adress, Adress2, Postnummer, Ort, Telefonnummer, Email, Kommentarer, IPnr)"
SQLStmt = SQLStmt & " VALUES(" & KundID & ", '" & Session("Namn") & "', '" & Session("Adress") & "', '" & Session("Adress2") & "', '" & Session("Postnummer") & "', '" & Session("Ort") & "', '" & Session("Telefonnummer") & "', '" & Session("Email") & "', '" & Session("Kommentarer") & "', '" & Session("IPnr") & "');"

my_Conn.Execute(SQLStmt)

'************ lägg in beställningen i beställningsdatabasen *******************

Dim order
Dim totalpris
totalpris = 0

For counter = 1 to Session("counter")

	lista = my_Conn.Execute ("SELECT * FROM prislista WHERE ArtikelNummer = '" + Session(counter) + "';")

	pris = Session(CStr(counter) + "a") * lista("Pris")

	'lägg in alla SQL-kommandon i en variabel 
	SQLStmt = "INSERT INTO bestallningar (ArtikelNummer,Benamning, Pris, KundID, Antal, TotalPris)"
	SQLStmt = SQLStmt & " VALUES('" & lista("ArtikelNummer") & "', '" & lista("Benamning")  & "', " & lista("Pris") & ", " & kundID & ", " & Session(CStr(counter) + "a") & ", " & Pris & ");"

	'** mata iväg ordern till databasen **
	my_Conn.Execute(SQLStmt)

	
	
	'** lagra ordern i en variabel **

	order = order & Session(CStr(counter) + "a") & "st. " & lista("ArtikelNummer") & " " & lista("Benamning") & ": " & pris & " kr.<br>" & vbCrLf

Next

'** lagra totalpriset av beställningen
'** här skall ev. fraktkostnader även räknas in

	
	
	
	totalPris = totalPris + Pris 

SQLStmt = "INSERT INTO bestallningar (Benamning, KundID, TotalPris) VALUES ('Totalt:','" & kundID & "','" & totalPris & "');"
my_Conn.Execute(SQLStmt)

order = order & "Totalt: " & " " & totalPris  & " kr."
```

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

## #4 — Ivar, 2004-08-27T09:27Z

Jesper T vart ska jag implementera koden?

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

## #5 — Jesper T, 2004-08-27T10:07Z

Jag orkar inte kolla igenom det nu, dock hade jag lagt på lite för mycket i fraktavgift.
Har ändrat det nu.
För att få den rätta summan (m. eller utan frakt) så klamrar du in din summa i funktionen.

```
'funktionen kanske högst upp på sidan
Response.write "Totalt pris är: "& pris(800) &" kr inkl. frakt"
```

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

## #6 — Ivar, 2004-08-27T17:37Z

```
'lagra beställning och kundinformation i databasen.

dbp=Server.MapPath ("t1tant0mat.mdb")

set my_conn = Server.CreateObject("ADODB.Connection")
my_Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + dbp

'***************** lägg in kunden i kunddatabasen ***************************
lista = my_Conn.Execute ("SELECT * FROM kunder ORDER BY KundID Desc;")

KundID = lista("KundID") +1

SQLStmt = "INSERT INTO kunder (KundID, Namn, Adress, Adress2, Postnummer, Ort, Telefonnummer, Email, Kommentarer, IPnr)"
SQLStmt = SQLStmt & " VALUES(" & KundID & ", '" & Session("Namn") & "', '" & Session("Adress") & "', '" & Session("Adress2") & "', '" & Session("Postnummer") & "', '" & Session("Ort") & "', '" & Session("Telefonnummer") & "', '" & Session("Email") & "', '" & Session("Kommentarer") & "', '" & Session("IPnr") & "');"

my_Conn.Execute(SQLStmt)

'************ lägg in beställningen i beställningsdatabasen *******************

Dim order
Dim totalpris
totalpris = 0

For counter = 1 to Session("counter")

	lista = my_Conn.Execute ("SELECT * FROM prislista WHERE ArtikelNummer = '" + Session(counter) + "';")

	pris = Session(CStr(counter) + "a") * lista("Pris")

	'lägg in alla SQL-kommandon i en variabel 
	SQLStmt = "INSERT INTO bestallningar (ArtikelNummer,Benamning, Pris, KundID, Antal, TotalPris)"
	SQLStmt = SQLStmt & " VALUES('" & lista("ArtikelNummer") & "', '" & lista("Benamning")  & "', " & lista("Pris") & ", " & kundID & ", " & Session(CStr(counter) + "a") & ", " & Pris & ");"

	'** mata iväg ordern till databasen **
	my_Conn.Execute(SQLStmt)

	
	
	'** lagra ordern i en variabel **

	order = order & Session(CStr(counter) + "a") & "st. " & lista("ArtikelNummer") & " " & lista("Benamning") & ": " & pris & " kr.<br>" & vbCrLf

Next

'** lagra totalpriset av beställningen
'** här skall ev. fraktkostnader även räknas in

	
	
	
	
[B]totalPris = totalPris + Pris [/B] 'Här är felet? 

SQLStmt = "INSERT INTO bestallningar (Benamning, KundID, TotalPris) VALUES ('Totalt:','" & kundID & "','" & totalPris & "');"
my_Conn.Execute(SQLStmt)

order = order & "Totalt: " & " " & totalPris  & " kr."
```

Förslag på lösning ?

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

## #7 — Jesper T, 2004-08-27T18:01Z

Vad funkar inte?

```
...
'** lagra totalpriset av beställningen
'** här skall ev. fraktkostnader även räknas in
[b]
function prislog(kr)
Dim frakt : frakt = 100 
    if clng(kr) < 1000 then 
        prislog=clng(kr)+frakt
    else 
        prislog=kr
    end if
end function
[/b]	
	
	
totalPris = [b]prislog(totalPris+pris)[/b]

SQLStmt = "INSERT INTO bestallningar (Benamning, KundID, TotalPris) VALUES ('Totalt:','" & kundID & "','" & totalPris & "');"
my_Conn.Execute(SQLStmt)

order = order & "Totalt: " & " " & totalPris  & " kr."
```

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

## #8 — Ivar, 2004-08-27T18:43Z

Jesper T det funkar inte om man har två beställningar typ 795 + 795 borde vara 1590 men det ser ut såhär: 
1st. G-1 Kockkniv GLOBAL 21cm rundad: 795 kr.
1st. G-2 Kockkniv GLOBAL 20cm: 795 kr.
Totalt: 895 kr.
Alltså beställningen summeras inte!

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

## #9 — Jesper T, 2004-08-27T18:57Z

Inne i loopen så får du lägga till summan i *totalPris*
totalPris=totalPris+pris
annars så är totalPris fortfarande 0 ju.

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

## #10 — Ivar, 2004-08-27T19:17Z

Stort tack Jesper T

Fungerande kod :

```
'lagra beställning och kundinformation i databasen.

dbp=Server.MapPath ("t1tant0mat.mdb")

set my_conn = Server.CreateObject("ADODB.Connection")
my_Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + dbp

'***************** lägg in kunden i kunddatabasen ***************************
lista = my_Conn.Execute ("SELECT * FROM kunder ORDER BY KundID Desc;")

KundID = lista("KundID") +1

SQLStmt = "INSERT INTO kunder (KundID, Namn, Adress, Adress2, Postnummer, Ort, Telefonnummer, Email, Kommentarer, IPnr)"
SQLStmt = SQLStmt & " VALUES(" & KundID & ", '" & Session("Namn") & "', '" & Session("Adress") & "', '" & Session("Adress2") & "', '" & Session("Postnummer") & "', '" & Session("Ort") & "', '" & Session("Telefonnummer") & "', '" & Session("Email") & "', '" & Session("Kommentarer") & "', '" & Session("IPnr") & "');"

my_Conn.Execute(SQLStmt)

'************ lägg in beställningen i beställningsdatabasen *******************

Dim order
Dim totalpris
Dim pris
totalpris = 0

For counter = 1 to Session("counter")

	lista = my_Conn.Execute ("SELECT * FROM prislista WHERE ArtikelNummer = '" + Session(counter) + "';")

     totalPris=totalPris+pris

	pris = Session(CStr(counter) + "a") * lista("Pris")

	'lägg in alla SQL-kommandon i en variabel 
	SQLStmt = "INSERT INTO bestallningar (ArtikelNummer,Benamning, Pris, KundID, Antal, TotalPris)"
	SQLStmt = SQLStmt & " VALUES('" & lista("ArtikelNummer") & "', '" & lista("Benamning")  & "', " & lista("Pris") & ", " & kundID & ", " & Session(CStr(counter) + "a") & ", " & Pris & ");"

	'** mata iväg ordern till databasen **
	my_Conn.Execute(SQLStmt)
	
	'** lagra ordern i en variabel **

	order = order & Session(CStr(counter) + "a") & "st. " & lista("ArtikelNummer") & " " & lista("Benamning") & ": " & pris & " kr.<br>" & vbCrLf

Next

'** lagra totalpriset av beställningen
'** här skall ev. fraktkostnader även räknas in

function prislog(kr)
Dim frakt : frakt = 100 
    if clng(kr) < 1000 then 
        prislog=clng(kr)+frakt
    else 
        prislog=kr
    end if
end function
totalPris = prislog(totalpris+ pris)
SQLStmt = "INSERT INTO bestallningar (Benamning, KundID, TotalPris) VALUES ('Totalt:','" & kundID & "','" & totalPris & "');"
my_Conn.Execute(SQLStmt)

order = order & "Totalt: " & " " & totalPris  & " kr."
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/110066-if-sats
