webForumDet fria alternativet

Gamla poster i databasen skrivs över av nya...

ASP

5 svar · 224 visningar · startad av soffan76

Medlem sedan maj 2001684 inlägg
Frågan#1

Hej alla!

Jag har ett antal checkboxar med en tillhörande dropdown list. När man gjort ett val i en checkbox ska även ett val göras i dropdown-menyn. Men sedan när dessa värden skrivs in tillsammans med ett ID-nummer så skrivs den senast inlagda posten över. Kan nån berätta varför det blir så? Mvh Sofia


<% 
Set Conn = Server.CreateObject("ADODB.Connection") 
set rs = Server.createObject ("ADODB.Recordset")
Conn.Open "PA" 

SQL = "SELECT * FROM PA_Koppling_Atgard"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1,2

for i=1 to Session("x")
if trim(request.form("check"+cstr(i)))<>"" then 

rs("PA_ID") = Session("PA_ID")
rs("Atgard_ID") = Request.form("check"+cstr(i))
rs("Val") = Request.form("koll"+cstr(i))

rs.AddNew
end if
next
%>

Koden på sidan innan ser ut som följer:

<form method="POST" action="form2_projektatgard2.asp">
<table>
<%
x=1
y=1
Do until rs.EOF %> 
<tr>
<td><input type=checkbox value="<% = rs("Atgard_ID") %>" name="check<%=x%>"><% = rs("Namn") %></td>
<%x= x--1%>

<td>
<select name="koll<%=y%>">
<option selected=""> 
<option value="Nybyggnad">Nybyggnad
<option value="Ombyggnad">Ombyggnad
</select>
<%y= y--1%>
</td>
</tr>
<%
rs.movenext 
loop
Session("x")= x 
Session("y")= y
%>
</table>

<table>
<tr><td>&nbsp;</td></tr>
<tr><td><input type=submit value="submit"></td></tr>
</table>
</form>

mycket kod blir det....

------------------
Sofia

Medlem sedan dec. 19998 577 inlägg
#2

Du måste sätta rs.AddNew för du lägger till saker, annars blir det som du säger att poster skrivs över... och sedan behöver du en rs.Update efter det att du lagt till... :)

------------------
Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it...
webEye.nu SweQuake.com

Medlem sedan maj 2001684 inlägg
#3

Ok...fast det blir felmeddelande...

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

form2_projektatgard2.asp, line 30

Ska koden se ut så här?
RS.AddNew ligger på linje 30, där felmeddelandet är.


SQL = "SELECT * FROM PA_Koppling_Atgard"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1,2

for i=1 to Session("x")
if trim(request.form("check"+cstr(i)))<>"" then 

rs("PA_ID") = Session("PA_ID")
rs("Atgard_ID") = Request.form("check"+cstr(i))
rs("Val") = Request.form("koll"+cstr(i))

end if
rs.AddNew
rs.Update
next
%>

------------------
Sofia

Medlem sedan dec. 19998 577 inlägg
#4

Nej, före det att du börjar lägga till:

SQL = "SELECT * FROM PA_Koppling_Atgard"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1,2

for i=1 to Session("x")
if trim(request.form("check"+cstr(i)))<>"" then 

rs.AddNew

rs("PA_ID") = Session("PA_ID")
rs("Atgard_ID") = Request.form("check"+cstr(i))
rs("Val") = Request.form("koll"+cstr(i))

rs.Update

end if
next

------------------
Budweiser - Slightly contaminated water... probably harmless, but I would recommend boiling before you drink it...
webEye.nu SweQuake.com

[Redigerat av Vide den 16 maj 2001]

Medlem sedan juni 200032 967 inlägg
#5

du ska ha .addnew innan du du börjar sätta fältvärden:

red: vide var först. jävla vide. :e
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>

[Redigerat av @nders den 16 maj 2001]

Medlem sedan maj 2001684 inlägg
#6

Stort tack, funkade fin-fint!

------------------
Sofia

400 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
129 ms — hämta statistik (db)
141 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)