<% if Request.Form("mode") = "slet" then if Request.Form("messID") <> "" then Connect.execute("delete from mess where vems = '"&session("id")&"' and id in("& Request.Form("messID") &")") end if end if %>
Takfor svaret. Det virker nu, men der sker en fejl!
Fejlen i browseren hedder: ADODB.Recordset error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Request operation requires a current record.
/7/las_mess.asp, line 103
Hmm, jeg har prøvet at slette den "move-next"-kode-funktion, men så sker der yderligere en fejl. Herunder følger størstedelen af koden til inboksen af postsystemet - så se om du kan finde ud af hvor den går galt:
<%
nextPage = TRIM( Request("nextPage")) IF nextPage = "" THEN nextPage = 1
Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb") Set rs = Server.CreateObject("ADODB.Recordset") Addera = "SELECT * FROM mess where vems = '"&session("id")&"' order by id desc" rs.Open Addera, Connect, 3, 3
if request.querystring("action")="tabort" then
if rs("vems")<>session("id") then response.redirect "las_mess.asp" end if rs.delete rs.update response.redirect "las_mess.asp" end if %> <% rs.PageSize = 10 if not rs.EOF then rs.AbsolutePage = nextPage %> <% END IF Do until rs.EOF OR rowCount = rs.PageSize if rs("id") <> session("id") then rowCount = rowCount + 1 %><br> <% if Request.Form("mode") = "slet" then if Request.Form("messID") <> "" then Connect.execute("delete from mess where vems = '"&session("id")&"' and id in("& Request.Form("messID") &")") end if end if %> </span> <form name="myForm" method="post" action="las_mess4.asp"> <input type="Hidden" name="mode" value=""> <% while not rs.eof %> <table width="600" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="mainTabel"> <tr> <td width="5%"> <% if rs("last")="0" then%> <img src="bilder/new_posts_icon.gif" width="18" height="12" align="absmiddle"> <% else %> <img src="bilder/no_new_posts_icon.gif" width="18" height="12" align="absmiddle"> <% end if%> </td> <td width="5%"><input type="Checkbox" name="messID" value="<%= rs("id") %>"></td> <td width="40%"> <div align="left"><a href="las_mess2.asp?id=<%=rs("id")%>"><%=rs("titel")%></a></div></td> <td width="40%"> <div align="left"><a href="las_mess.asp?action=tabort&id=<%=rs("id")%>"><%=rs("fran")%> </a></div></td> <td width="10%"><div align="center"><a href="las_mess.asp?action=tabort&id=<%=rs("id")%>"><img src="bilder/delete_icon.gif" width="15" height="16" align="absmiddle" border=0></a></div></td> </tr> </table></td> </tr> <tr> <td><img src="../grafik/line_skiller.gif" width="600" height="1"> <% rs.MoveNext wend %> <input name="Button" type="Button" onClick="this.form.mode.value='slet';this.form.submit();return false;" value="SletValgte"></td> </tr> <tr> <td><table width="600" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="500" height="36" class="fontLille"> <% end if rs.movenext loop %> Postkassen indeholder<span style="font-weight: bold"> <%=mess%></span> ulæste breve.<br> <% IF rs.PageCount > 1 THEN
%> Side: <% FOR a = 1 to rs.PageCount IF a <> cINT( nextPage ) THEN %> <% if request.querystring("sort")="" then %> <a href="las_mess.asp?nextPage=<%=a%>"><%=a%></a> <% else %> <a href="las_mess.asp?nextPage=<%=a%>&sort=<%=request.querystring("sort")%>"><%=a%></a> <% end if ELSE %> <%=a%> <% END IF NEXT end if %></td> </tr> </table></td> </tr> </table> <br> </form> <span class="bodyProfiltekst">
- men det er et godt tegn at det virker med at slette dem man har vangt!
skal ikke stå inde i loopet. Du kan desuden med fordel lave en redirect deri, så opstår "submit igen" problemet nemlig ikke hvis brugeren trykker på tilbage knappen:
<%
nextPage = TRIM( Request("nextPage")) IF nextPage = "" THEN nextPage = 1
if Request.Form("mode") = "slet" then if Request.Form("messID") <> "" then Connect.execute("delete from mess where vems = '"&session("id")&"' and id in("& Request.Form("messID") &")") end if response.redirect("las_mess4.asp") end if
Set rs = Server.CreateObject("ADODB.Recordset") Addera = "SELECT * FROM mess where vems = '"&session("id")&"' order by id desc" rs.Open Addera, Connect, 3, 3
if request.querystring("action")="tabort" then
if rs("vems")<>session("id") then response.redirect "las_mess.asp" end if rs.delete rs.update response.redirect "las_mess.asp" end if %> <% rs.PageSize = 10 if not rs.EOF then rs.AbsolutePage = nextPage %> <% END IF Do until rs.EOF OR rowCount = rs.PageSize if rs("id") <> session("id") then rowCount = rowCount + 1 %><br> </span> <form name="myForm" method="post" action="las_mess4.asp"> <input type="Hidden" name="mode" value=""> <% while not rs.eof %> <table width="600" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="mainTabel"> <tr> <td width="5%"> <% if rs("last")="0" then%> <img src="bilder/new_posts_icon.gif" width="18" height="12" align="absmiddle"> <% else %> <img src="bilder/no_new_posts_icon.gif" width="18" height="12" align="absmiddle"> <% end if%> </td> <td width="5%"><input type="Checkbox" name="messID" value="<%= rs("id") %>"></td> <td width="40%"> <div align="left"><a href="las_mess2.asp?id=<%=rs("id")%>"><%=rs("titel")%></a></div></td> <td width="40%"> <div align="left"><a href="las_mess.asp?action=tabort&id=<%=rs("id")%>"><%=rs("fran")%> </a></div></td> <td width="10%"><div align="center"><a href="las_mess.asp?action=tabort&id=<%=rs("id")%>"><img src="bilder/delete_icon.gif" width="15" height="16" align="absmiddle" border=0></a></div></td> </tr> </table></td> </tr> <tr> <td><img src="../grafik/line_skiller.gif" width="600" height="1"> <% rs.MoveNext wend %> <input name="Button" type="Button" onClick="this.form.mode.value='slet';this.form.submit();return false;" value="SletValgte"></td> </tr> <tr> <td><table width="600" height="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="500" height="36" class="fontLille"> <% end if rs.movenext loop %> Postkassen indeholder<span style="font-weight: bold"> <%=mess%></span> ulæste breve.<br> <% IF rs.PageCount > 1 THEN
%> Side: <% FOR a = 1 to rs.PageCount IF a <> cINT( nextPage ) THEN %> <% if request.querystring("sort")="" then %> <a href="las_mess.asp?nextPage=<%=a%>"><%=a%></a> <% else %> <a href="las_mess.asp?nextPage=<%=a%>&sort=<%=request.querystring("sort")%>"><%=a%></a> <% end if ELSE %> <%=a%> <% END IF NEXT end if %></td> </tr> </table></td> </tr> </table> <br> </form> <span class="bodyProfiltekst">
<% rs.PageSize = 10 if not rs.EOF then rs.AbsolutePage = nextPage %> <% END IF Do until rs.EOF OR rowCount = rs.PageSize if rs("id") <> session("id") then rowCount = rowCount + 1 %>
Men hvordan kan jeg så holde styr på løkkerne? Det er vel øverste og nederste der hører sammen - og næst øverste og næst nederste der hører sammen, eller??
Jeg kan ikke forstå hvorfor du overhoved har løkker i løkker. Hvad skal if rs("id") <> session("id") then
.. gøre godt for, og hvorfor udskriver du resten af RS, hvis du kommer herind?? En af de rækker som du udskriver her kan jo indeholde et ID som er lig session("id"). Desuden ryger din paging funktion også, da inner loopet ikke bliver stoppet.
Jeg vil næsten foreslå dig at begynde helt forfra, for jeg tror du har fået rodet for meget rundt i din kode, og det kan let tage længere tid at få det rettet, end at bygge det op fra bunden igen...
Tak for hjælpen - nu fik jeg startet forfra og det kom til at virke. Men herunder er så den nye kode - hvordan får jeg tilfølet funktionen at den skriver "Postkassen er tom",når der ingen breve er i?!?
KODEN ER HER#######
<%
Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb") Set rs = Server.CreateObject("ADODB.Recordset") Addera = "SELECT * FROM mess where vems = '"&session("id")&"' order by id desc" rs.Open Addera, Connect, 3, 3
if Request.Form("mode") = "slet" then if Request.Form("messID") <> "" then Connect.execute("delete from mess where vems = '"&session("id")&"' and id in("& Request.Form("messID") &")") end if response.redirect("las_mess.asp") end if
Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb") Set rs = Server.CreateObject("ADODB.Recordset") Addera = "SELECT * FROM anv where id='"&session("franid")&"'" %> <table width="85%" height="65%" border="0" align="center" cellpadding="0" cellspacing="0" class="roundTabel"> <tr> <td height="15"><div align="center" class="topTabel"><strong><font size="2">KLUNKEBY POSTVÆSEN | DIN POSTKASSE </font></strong></div></td> </tr> <tr> <td colspan="3" valign="top" class="mainTabel"><div align="left"> <form name="myForm" method="post" action="las_mess.asp"> <table width="600" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td> <input type="Hidden" name="mode" value=""> <% intPage = Request("page") If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
-lige en bemærkning. Jeg er ikke hardcore programmør - sidder for det meste og sætte ting sammen og ændre i tidligere scripts - derfor kan det virkelidt rodet!
Sidste spørgsmål; hvordan uddeler jeg point. Kan ikke finde det - og vil gerne give dig point for hjælpen, jo..
Du skal bare tilføje 2 linjer omkring linje 106 (sikkert mere så det ser ordentlig ud :o)
... rs.MoveNext Loop else '<-- Tilføj denne og efterfølgende linje. response.write "Postkassen er tom" End If rs.Close Set rs = Nothing Response.Write "Gå til side "
Du kan først give point når jeg har lavet et svar (hvilket jeg har nu). Så kan du vælge mig på en liste til venstre og acceptere svaret. Alle som har afgivet et svar står på den liste og er der flere, kan du vælge dem alle eller enkelte personer, så bliver point fordelt ligligt mellem dem du har valgt. Du kan også vælge en avanceret pointdeling, hvor du bestemmer hvor mange point den enkelte person skal have (hvis en har gjort sig fortjent til flere point end andre)
Det er desuden kutyme, at man ikke lægger et svar inden spørgeren beder om det, så husk at bede den/de personer om et svar, som har hjulpet dig. Flere gange er point nemlig blevet fordelt forkert, fordi der er flere, der har lavet et svar, som ikke skal have point. Der er selvfølgelig undtagelser, ved de nemme ?, som man ved man har svaret på med det samme, også er det i orden, at lave et svar med det samme :o)
Jamen tusinde tak for hjælpen... Det gav mig løsning og svar.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.