Kanske lite väl otydlig....
Den enda lösningen jag kan komma på är att först sätta värdet 'false' på alla ID och sedan köra det en gång till och sätta 'true' på de ID som skall ha det,
Tänkte bara ifall man kunde komma runt att anropa DB:n 2 ggr.
5 svar · 220 visningar · startad av roady
Kan jag uppdatera fält i en DB i en enda SQL sats?
Alltså jag har ett formulärfält där jag listar en massa weblänkar och till den så har jag en massa checkboxes där man väljer i vilken kategori länken skall ligga i eller om man vill ta bort den (i access databasen blir valen 'true' eller 'false')
Först Formuläret:
Typ;
<form name="form" method="post" action="change.asp">
<table>
<% Do Until objRS.EOF
<tr>
<td><%=objRS("lankRubrik")%></td>
<td align="center"><input type="checkbox" name="elev" value="<%=objRS("lankID")%>"
<% IF objRS("lankElev") = true THEN
response.write "CHECKED"
END IF%>></td>
<td align="center"><input type="checkbox" name="larare" value="<%=objRS("lankID")%>"
<% IF objRS("lankLarare") = true THEN
response.write "CHECKED"
END IF%>></td>
<td align="center"><input type="checkbox" name="kommun" value="<%=objRS("lankID")%>"
<% IF objRS("lankKommun") = true THEN
response.write "CHECKED"
END IF%>></td>
<td align="center"><input type="checkbox" name="sokverktyg" value="<%=objRS("lankID")%>"
<% IF objRS("lankSokverktyg") = true THEN
response.write "CHECKED"
END IF%>></td>
<td align="center"><input type="checkbox" name="media" value="<%=objRS("lankID")%>"
<% IF objRS("lankMedia") = true THEN
response.write "CHECKED"
END IF%>></td>
<td align="center"><input type="checkbox" name="delete" value="<%=objRS("lankID")%>"></td>
</tr>
<% objRS.MoveNext
Loop %>
</table>
Skulle jag exempel lista de som skall ha lankElev till true så kan jag lista dem med:
request.form("elev") så visas alla ID-nummer....
Alltså kan jag uppdatera alla länkar som skall ligga i elev katalogen med:
strElev = request.form("elev")
SQL = "UPDATE lank SET lankElev = 'true' WHERE lankID = "& strElev &";"
Men hur gör jag för att sätta resten till 'false' ???
PS: jag kan inte den pedagogisk biten så ursäkta om frågan är lite luddig
Kanske lite väl otydlig....
Den enda lösningen jag kan komma på är att först sätta värdet 'false' på alla ID och sedan köra det en gång till och sätta 'true' på de ID som skall ha det,
Tänkte bara ifall man kunde komma runt att anropa DB:n 2 ggr.
strElev = request.form("elev")
SQL = "UPDATE lank SET lankElev = 'true' WHERE lankID IN ("& strElev &")"
objconn.Execute(SQL)
SQL = "UPDATE lank SET lankElev = 'false' WHERE lankID NOT IN("& strElev &")"
objconn.Execute(SQL)
cya,
PatrikB
Oki, då får man göra så ändå....
Tackar Patrik
Det är inte nödvändigt
SQL = "UPDATE lank SET lankElev = iif(lankid in ("& strElev &"),true,false)"
om du kör access.
Häftigt..... skall testa koden på fredag.... tackar tackar
Jag älskar det här forumet och er.... (ta det inte fel )