webForumDet fria alternativet

Felmeddelande med Access...

ASP

11 svar · 208 visningar · startad av Morph

Medlem sedan juli 2000534 inlägg
Frågan#1

När jag kör denna kod...

strSQL = "UPDATE kandidater SET heltid='" & heltid & "', deltid='" & deltid & "', vikarie='" & vikarie & "', projekt='" & projekt & "', prov='" & prov & "', yrke='" & yrke & "' WHERE id=" & id & ""
conKbank.Execute (strSQL)

... får jag detta felmeddelande...

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

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

... på raden conKbank.Execute. Jag har skrivit ut SQL-satsen och den verkar korrekt, alla fnuttar är på plats. Det konstiga är att jag kör nästan identiska UPDATE-satser, med samma connection-string, på flera andra sidor och det fungerar utmärkt...

Nån som har något förslag på orsak??

/Morph

Medlem sedan mars 20007 896 inlägg
#2

så här:

strSQL = "... WHERE id = '" & id & "'"

Du glömde 'snuttarna' på id :)

------------------
SPiN, bjowik99@it-gymnasiet.nu

Medlem sedan dec. 19998 577 inlägg
#3

Testa att skriva ut hela SQL-strängen:

Response.write strSQL

före du exekverar den...

------------------
www.webeye.nu

Medlem sedan juli 2000534 inlägg
#4

SPiN: det behövs väl inga fnuttar på id, det e ju ett nummer... eller??
Förresten, vilken klass går du i på IT-Gymnasiet? Jag går där också nämligen...

Vide: Jag _har_ skrivit ut SQL-satsen och allt ser bra ut, det är det som är så konstigt... Vad menar Access med "Expected 1" ???

/Morph

Medlem sedan dec. 19998 577 inlägg
#5

Den förväntar sig en parameter... kan du inte visa SQL-strängen här... (för min skull :))... mig veterligen kan inte felet sitta någon annan stans än i SQL-strängen...

------------------
www.webeye.nu

Medlem sedan maj 2000269 inlägg
#6

hmm det kan oxå vara så att någon av variablarna kanske är tomma

Medlem sedan dec. 19998 577 inlägg
#7

Precis, det är ju därför man skriver ut SQL-strängen bl.a...

*väntar nyfiket*

------------------
www.webeye.nu

Medlem sedan juli 2000534 inlägg
#8

Här är min SQL-sats:

UPDATE kandidater SET heltid='1', deltid='1', vikarie='0', projekt='0', prov='1', yrke='Engelska' WHERE id=15

Fälten heltid, deltid osv är kryssrutor från ett formulär som har värdet "1". För att undvika tomma variabler i SQL:n kör jag en IF-sats innan:

If Request.Form("heltid") = "" Then heltid = "0"

Jag har även testat ett sätta fnuttar på id men då blev det ännu mera fel =). Det som gör mig extra irriterad är att liknande UPDATE-satser funkar utmärkt mot samma databas på andra sidor......

/Morph

Medlem sedan juni 200032 967 inlägg
#9

vad har du för datatyp på fälten heltid, deltid, vikarie, projekt och prov?

------------------
@nders

Medlem sedan juli 2000534 inlägg
#10

Datatyp: Tal, byte alltså 0-255

Jag har testat med & utan fnuttar... det funkar andå inte :(

Medlem sedan juni 200032 967 inlägg
#11

är det tal ska du inte ha fnuttar runt. då spelar det ingen roll hur många gånger du testar, det kommer alltid att bli fel.

------------------
@nders

Medlem sedan juli 2000534 inlägg
#12

@nders: Jag _har_ försökt med och utan fnuttar... det funkar inte iaf...

I ett ögonblick av insikt så testade jag att ge varje fält en egen UPDATE... Upptäckte då att det är fältet yrke som gör att det inte funkar, fråga mig inte varför =) Nån annan som vet??

/Morph

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)