webForumDet fria alternativet

"Loopa" i en insert!?

ASPur ASP

2 svar · 176 visningar · startad av hakangus

Medlem sedan feb. 200144 inlägg
Frågan#1

Jag har ett formulär med tre svarsalternativ namngivna SVAR1, SVAR2 och SVAR3. Jag tänkte sätta in dem i Access med en liten loop.

for i = 1 to 3
svarsalt = i
svarsalt = "svar" & i
svarsalt = request.form(svarsalt)

SQLStmt = "INSERT INTO tblsvar"
SQLStmt = SQLStmt & "(ar, manad, svarsnr, svar)"
SQLStmt = SQLStmt & "VALUES(" & Request.Form("ar") & ", " & Request.Form("manad") & ", " & svarsalt & " , '" & Request.Form("svar") & "')"
Connection.Execute(SQLStmt)
next
Connection.Close

Jag får felmeddelandet:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'Första svarsalternativet'.
/eko2000/inserttavling.asp, line 16

Vad är felet?

"Första svarsalternativet" är texten i input-fältet SVAR1.

[Redigerat av hakangus den 10 apr 2001]

Medlem sedan juni 200032 967 inlägg
#2

svarsalt är ju en sträng, då måste du ha apostrofer runt värdet i sql-frågan.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

Medlem sedan feb. 200144 inlägg
#3

Hade bytt plats på värdena till fälten svarsnr och svar.

Anders hade för övrigt helt rätt. Svarsnr är ett numeriskt fält och får värdet av "i" medans svar får värdet av "svarsalt".

Så här ska det vara:

for i = 1 to 3
svarsalt = "svar" & i
svarsalt = request.form(svarsalt)

SQLStmt = "INSERT INTO tblsvar"
SQLStmt = SQLStmt & "(ar, manad, svarsnr, svar)"
SQLStmt = SQLStmt & "VALUES(" & Request.Form("ar") & ", " & Request.Form("manad") & ", " & i & " , '" & svarsalt & "')"
Connection.Execute(SQLStmt)
next

Allt funkar! :)

140 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)