---
title: "Uppdatera"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/92955-uppdatera"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Thompa__85"
published: "2003-12-17T23:07:28.000Z"
updated: "2003-12-18T17:45:45.000Z"
replies: 8
views: 295
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/92955-uppdatera"
---

# Uppdatera

## #1 — Thompa__85, 2003-12-17T23:07Z

Hejsan!
Har denna kod:

```
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("../databas/saker.mdb")
Set saker = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM saker where vemsid='"&session("id")&"'"
saker.Open Addera, Connect, 3, 3 

if Session("vara") = saker("sak") then
saker("antal") = saker("antal") + 1
saker.update

else

saker.addnew
saker("sak") = Session("vara")
saker("vemsid") = Session("id")
saker("antal") = Session("antal")
saker.update

end if 

response.redirect "../klotter.asp"
```

Jag vill alltså att den kollar: Om Session("vara") är lika med saker("sak").. saker("sak") är vad användaren redan har för varor.. å har användaren redan en vara som är lika som Session("vara") så ska den uppdatera saker("antal"). Men är dom olika ska den lägga till en ny.. men det funkar inte att göra så den lägger på antal om varan är lika.. den skapar en ny rs varje gång.. varför?

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

## #2 — Palle, 2003-12-17T23:50Z

Så här kanske.. 

```
[red]<%

Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("../databas/saker.mdb")
		Set RecSet = Connect.Execute("SELECT sak FROM saker WHERE vemsid='"& Session("id") &"'")

			If NOT RecSet.EOF Then
				strSak = RecSet("sak")
			RecSet.Close
			
			If LCase(Session("vara")) = LCase(strSak) Then
				Connect.Execute("UPDATE saker SET antal=antal+1 WHERE vemsid='"& Session("id") &"'"),,128
			Else
				Connect.Execute("INSERT INTO saker (sak, vemsid, antal) VALUES('"& Session("vara") &"', '"& Session("is") &"', "& Session("antal") &")"),,128
			End If

		Set RecSet = Nothing
	Connect.Close
Set Connect = Nothing

Response.Redirect "../klotter.asp" 

%>[/red]
```

Med observation för vissa ändringar pga din datatyper, här gissar jag bara..

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

## #3 — Thompa__85, 2003-12-18T00:30Z

> **Palle skrev:**
>
> Så här kanske.. 
>
> ```
> [red]<%
> 
> Set Connect = Server.CreateObject("ADODB.Connection")
> 	Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("../databas/saker.mdb")
> 		Set RecSet = Connect.Execute("SELECT sak FROM saker WHERE vemsid='"& Session("id") &"'")
> 
> 			If NOT RecSet.EOF Then
> 				strSak = RecSet("sak")
> 			RecSet.Close
> 			
> 			If LCase(Session("vara")) = LCase(strSak) Then
> 				Connect.Execute("UPDATE saker SET antal=antal+1 WHERE vemsid='"& Session("id") &"'"),,128
> 			Else
> 				Connect.Execute("INSERT INTO saker (sak, vemsid, antal) VALUES('"& Session("vara") &"', '"& Session("is") &"', "& Session("antal") &")"),,128
> 			End If
> 
> 		Set RecSet = Nothing
> 	Connect.Close
> Set Connect = Nothing
> 
> Response.Redirect "../klotter.asp" 
> 
> %>[/red]
> ```
>
> Med observation för vissa ändringar pga din datatyper, här gissar jag bara..

Nja, jag testade köpa en sak jag redan hade.. men den uppdaterade inte antalet utan skapade en ny :/ Vet nån varför?

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

## #4 — Palle, 2003-12-18T07:27Z

Testa det här då: 

```
[red]<%

bolVaraFinns = False

Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("../databas/saker.mdb")
		Set RecSet = Connect.Execute("SELECT sak FROM saker WHERE vemsid='"& Session("id") &"' AND sak='"& Session("vara") &"'")

			If NOT RecSet.EOF Then
				bolVaraFinns = True
			Else
				bolVaraFinns = False
			End If
			RecSet.Close
			
		Set RecSet = Nothing
	Connect.Close
Set Connect = Nothing

If bolVaraFinns = True
	Connect.Execute("UPDATE saker SET antal=antal+1 WHERE vemsid='"& Session("id") &"' AND sak='"& Session("vara") &"'"),,128
Else
	Connect.Execute("INSERT INTO saker (sak, vemsid, antal) VALUES('"& Session("vara") &"', '"& Session("id") &"', "& Session("antal") &")"),,128
End If

Response.Redirect "../klotter.asp" 

%>[/red]
```

En fråga bara:
\- Varför använder du Sessions, känns väldigt onödigt.

&nbsp;

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

## #5 — Thompa__85, 2003-12-18T10:44Z

> **Palle skrev:**
>
> Testa det här då: 
>
> ```
> [red]<%
> 
> bolVaraFinns = False
> 
> Set Connect = Server.CreateObject("ADODB.Connection")
> 	Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("../databas/saker.mdb")
> 		Set RecSet = Connect.Execute("SELECT sak FROM saker WHERE vemsid='"& Session("id") &"' AND sak='"& Session("vara") &"'")
> 
> 			If NOT RecSet.EOF Then
> 				bolVaraFinns = True
> 			Else
> 				bolVaraFinns = False
> 			End If
> 			RecSet.Close
> 			
> 		Set RecSet = Nothing
> 	Connect.Close
> Set Connect = Nothing
> 
> If bolVaraFinns = True
> 	Connect.Execute("UPDATE saker SET antal=antal+1 WHERE vemsid='"& Session("id") &"' AND sak='"& Session("vara") &"'"),,128
> Else
> 	Connect.Execute("INSERT INTO saker (sak, vemsid, antal) VALUES('"& Session("vara") &"', '"& Session("id") &"', "& Session("antal") &")"),,128
> End If
> 
> Response.Redirect "../klotter.asp" 
> 
> %>[/red]
> ```
>
> 
> 
> En fråga bara:
> \- Varför använder du Sessions, känns väldigt onödigt.
> 
> 
> &nbsp;

Det funkar nästan...
den lägger till +1 istället för Session("antal")... Varför??

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

## #6 — Palle, 2003-12-18T10:53Z

> **Thompa__85 skrev:**
>
> Det funkar nästan...
> den lägger till +1 istället för Session("antal")... Varför??

Därför att du sa att det var så det skulle vara.. ;)

Ändra sql-satsen för *UPDATE* till detta så borde det göra susen: 

```
[red]Connect.Execute("UPDATE saker [blue]SET antal="& Session("antal") &"[/blue] WHERE vemsid='"& Session("id") &"' AND sak='"& Session("vara") &"'"),,128[/red]
```

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

## #7 — Thompa__85, 2003-12-18T11:07Z

> **Palle skrev:**
>
> > **Thompa__85 skrev:**
> >
> > Det funkar nästan...
> > den lägger till +1 istället för Session("antal")... Varför??
>
> Därför att du sa att det var så det skulle vara.. ;)
> 
> Ändra sql-satsen för *UPDATE* till detta så borde det göra susen: 
>
> ```
> [red]Connect.Execute("UPDATE saker [blue]SET antal="& Session("antal") &"[/blue] WHERE vemsid='"& Session("id") &"' AND sak='"& Session("vara") &"'"),,128[/red]
> ```

Nja.. nu blir de så att har man varan innan lägger den inte på nån alls :/

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

## #8 — Thompa__85, 2003-12-18T16:20Z

någon som kan?

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

## #9 — Palle, 2003-12-18T17:45Z

> **Thompa__85 skrev:**
>
> Nja.. nu blir de så att har man varan innan lägger den inte på nån alls :/

Finns Session("antal") då, och har den något värde?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/92955-uppdatera
