"Loopa" i en insert!?

ASP

2 svar · 189 visningar · startad av hakangus

Medlem sedan feb. 200144 inlägg
Trådstart#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.

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! :)

249 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)