webForumDet fria alternativet

Uppdatara kryssrutor kopplade till olika ID?

ASP

25 svar · 349 visningar · startad av Mattias · sida 2 av 2

Frågan, av Mattias

Jag har en sida där jag har ett antal rader med kryssrutor som var och en symboliserar om en stuga är bokad en viss vecka. Varje rad av kryssrutor är "kopplad" till respektive rads/stugas ID-nummer. Sidans syfte är att man ska kunna uppdatera dessa kryssrutor genom att föra in kryssrutevärdena rad efter rad till databasen. Jag skickar alltså vidare värdena i formuläret till en dataupptagarsida.

Läs frågan i sin helhet →
Medlem sedan dec. 200012 464 inlägg
#21

Fältet med antalet stugor ska ligga efter loopen så att det bara förekommer en gång. Value skall inte vara rs("stugID") utan counter.

Som det är nu så kommer fältet stugID att skrivas en gång per loop.

sql = SQL =

Jag skrev fel där. Den första sql = skall tas bor.

connect.execute sql,,128

Jo, det går att skriva så. ,,128 innebär att man talar om för ADO att den frågan man ställer inte returnerar några poster och att det därför är onödigt att skapa ett recordset.

------------------
essentitia preter non sans multiplicandum

Medlem sedan mars 2000205 inlägg
#22

Nu får jag följande felmeddelande:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
/webtester/bokning.asp, line 34

Rad 34 är Connection.Execute SQL,,128 på upptagarsidan. Har även testat Connection.Execute(SQL), men det gjorde såklart ingen skillnad. Relevant kod på upptagarsidan:

FOR i = 0 to Request.Form("counter")

stugID = Request.Form("stugID" & i)

v23 = Request.Form("v23_" & i)
v24 = Request.Form("v24_" & i)
v25 = Request.Form("v25_" & i)
v26 = Request.Form("v26_" & i)
v27 = Request.Form("v27_" & i)
v28 = Request.Form("v28_" & i)
v29 = Request.Form("v29_" & i)
v30 = Request.Form("v30_" & i)
v31 = Request.Form("v31_" & i)
v32 = Request.Form("v32_" & i)
v33 = Request.Form("v33_" & i)
v34 = Request.Form("v34_" & i)
v35 = Request.Form("v35_" & i)

SQL = "UPDATE tblStuginfo_1 SET v23 = " & v23 & ", v24 = " & v24 & ", v25 = " & v25 & ", v26 = " & v26 & ", v27 = " & v27 & ", v28 = " & v28 & ", v29 = " & v29 & ", v30 = " & v30 & ", v31 = " & v31 & ", v32 = " & v32 & ", v33 = " & v33 & ", v34 = " & v34 & ", v35 = " & v35 & " WHERE StugID = '" & stugID &"'"

Connection.Execute SQL,,128

------------------

// Mattias

Medlem sedan dec. 200012 464 inlägg
#23

Hur ser sql-satsen ut? Om du lägger till

response.write "SQL: " & sql & "<br>"

innan du gör execute så får vi se.

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 200012 464 inlägg
#24

I och för sig så tror jag att jag förstår vad problemet är. Om en checkbox inte är ikryssad så blir värdet en tom sträng.

I så fall får du lägga till


v23 = Request.Form("v23_" & i)
if v23 = "" then v23 = "0"

eller


v23 = len(Request.Form("v23_" & i))

för alla veckor.

red: alternativ kodning.
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 27 sep 2001]

Medlem sedan mars 2000205 inlägg
#25

Jippieee... Nu verkar det fungera! :)

LarsG, tack så mycket för din hjälp och ditt tålamod. Jag är väldigt tacksam! Med tanke på mina minst sagt begränsade ASP-kunskaper lär det ha tagit åtskilliga veckor att lösa detta utan din hjälp.

Självklart tackar jag även emission och jorgen för era bidrag!

------------------

// Mattias

Medlem sedan dec. 200012 464 inlägg
#26

Så bra. Välkommen tillbaka.

------------------
essentitia preter non sans multiplicandum

700 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
567 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
567 ms — ändringar (db)