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>
2 svar · 176 visningar · startad av hakangus
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]
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>
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! :)