---
title: "UPDATE-problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/8099-update-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Bendro"
published: "2001-02-11T14:23:00.000Z"
updated: "2001-02-12T10:41:00.000Z"
replies: 10
views: 337
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/8099-update-problem"
---

# UPDATE-problem

## #1 — Bendro, 2001-02-11T14:23Z

Felmeddelande:

```
Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 3. 

/slutprojekt/admin/varareg_doit.asp, line 31
```

Och så är ser koden ut:

```
<%
	option explicit
	response.buffer=TRUE
	Dim conn, rs, sql, sql2, vnamn, besk, enh, pris, artnr, bildurl, lager, bokat, bestpunkt, varuId

If not Session("inloggad")="Ja" Then
	response.redirect("login.asp")
End If
%>
<!--#INCLUDE FILE="dbkoppling.inc"-->
<%
	vnamn=request.form("vNamn")
	besk=request.form("besk")
	enh=request.form("enh")
	pris=request.form("pris")
	artnr=request.form("artnr")
	bildurl=request.form("bildurl")
	lager=request.form("lager")
	bokat=request.form("bokat")
	bestpunkt=request.form("bestpunkt")
	varuId=request.querystring("varuId")

IF NOT varuId ="" THEN
	sql="UPDATE vara SET varuNamn='"&vnamn&"', varuBesk='"&besk&"', enhetstyp='"&enh&"', varuPris='"&pris&"', artnr='"&artnr&"', varuBildUrl='"&bildurl&"' WHERE varuId="&varuId&";"
	conn.execute(sql)

	[b]sql="UPDATE varalager SET lager="&lager&", bokat="&bokat&", bestpunkt="&bestpunkt&" WHERE varuId="&varuId&";"
[/b]	conn.execute(sql)

ELSE
	
	sql="INSERT INTO vara(varuNamn, varuBesk, enhetstyp, varuPris, artnr, varuBildUrl, kundPnr) VALUES('"&vnamn&"', "&besk&"', '"&enh&"', '"&pris&"', '"&artnr&"', '"&bildurl&"');"	
	conn.Execute(sql)

	sql2="SELECT TOP 1 kundId FROM kund	order by kundId desc;"
	Set rs=conn.Execute(sql2)
	varuId=rs("varuId")

	sql="INSERT INTO varaLager(varuId,lager,bokat,bestPunkt) VALUES('"&varuId&"','"&lager&"','"&bokat&"','"&bestpunkt&"');"
	conn.execute(sql)
END IF

	response.redirect("adm_vara.asp?varuId="&varuId)

conn.Close
Set conn=NOTHING
%>
```

Värderna lager, bokat och bestpunkt följer med i requesten...det har jag kollat. Fälten i databasen är nummeriska..men när jag provade med en Cint fick jag felet Type mismatch 'Cint

Rad 31 är den i fetstil

Oerhört tacksam för den hjälp jag kan få...som ni ser är det ett slutprojekt och därmed har jag ganska lite tid på mig innan allt skall vara klart. Retar mig att fastna på något som troligtvis är ett struntfel.

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

## #2 — LarsG, 2001-02-11T15:11Z

Nej jag kan inte se något direkt frånsett att det avslutande ; är onödigt.
Testa att skriva ut sql-satsen med en response.write
Då kan det vara enklare att se om något värde saknas eller om det saknas ett mellanslag någonstans.

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

## #3 — casca, 2001-02-11T15:19Z

Hm, vet inte om det här kan hjälpa, men ska det inte vara enkelfnuttar i UPDATE-satsen?

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

## #4 — Bendro, 2001-02-11T18:20Z

> Testa att skriva ut sql-satsen med en response.write
> Då kan det vara enklare att se om något värde saknas eller om det saknas ett mellanslag någonstans.

Borde jag tänkt på själv..tack :D
Får kolla det imorgon eftersom jag sitter hemma nu och min PWS inte tycker om livet längre. Återkommer om jag inte hittar felet. :e

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

## #5 — Bendro, 2001-02-12T07:32Z

Ok..har kört en response.write på sql-strängen

```
UPDATE varalager SET lager= 10, bokat=5, bestpunkt= 3 WHERE varuId=1;
```

Ser väl ok ut....eller?
Hjäääälp..... :x

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

## #6 — Vide, 2001-02-12T09:12Z

och fälten i databasen är korrekta? se till så att dom inte är reserverade ord (inte för att det ser ut som om dom är det...) ;)

Mvh, Vide

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

## #7 — Bendro, 2001-02-12T09:20Z

Inte ens Vide visste...då är det kris ;)

Databasfälten skall vara korrekta, och såvitt jag vet är det inte reserverade ord jag använder mig av.
Saken är den att jag hämtat upp info ifrån databasen strax innan...det jag nu försöker göra är att uppdatera den efter de ändringar som användaren kan göra.

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

## #8 — Eclipse, 2001-02-12T09:39Z

när du skriver

pris= request("pris")

och sen \<%=pris%\>

då ärt pris en char, inte som man vill en int.

du måste konvertera alla dina siffor till intiger, i koden ovan är de strängar. Man vill inte att det ska vara så men så är det.

finns det inte ett komando som heter toInt("pris")??

kolla det.

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

## #9 — Eclipse, 2001-02-12T09:42Z

fungerar detta?:

pris = request("pris")
pris = int("pris")

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

## #10 — Bendro, 2001-02-12T09:55Z

```
Microsoft VBScript runtime error '800a000d' 

Type mismatch: '[string: "pris"]' 

/slutprojekt/admin/varareg_doit.asp, line 24
```

Pris är Currency i databasen så förstår jag att den bör konverteras.
Men hittils har jag inte fått felmeddelanden på den Update-satsen utan den andra där lager, bokat och bestpunkt ligger. 

SQL-satsen den nu klagar på ser nu ut så här, tog bort ' runt pris eftersom jag konverterat såsom du sa.

```
	sql4="UPDATE vara SET varuNamn='"&vnamn&"', varuBesk='"&besk&"', enhetstyp='"&enh&"', varuPris="&pris&", artnr='"&artnr&"', varuBildUrl='"&bildurl&"' WHERE varuId="&varuId&";"
	conn.execute(sql4)
```

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

## #11 — Bendro, 2001-02-12T10:41Z

**Problemet löst!**
Det var så löjligt att jag skäms :r

Jag hade råkat få med ett mellanslag i Value på formuläret..och därmed kunde jag givetvis inte lägga ner datan som siffervärde i databasen.

Tack för all hjälp och goda råd.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/8099-update-problem
