Det kanske går bättre om du tar bort det med SQL direkt?
if request.querystring("action")="tabort" then
strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
Connect.Execute(strSQL)
response.redirect "klotter.asp"
end if
17 svar · 355 visningar · startad av Thompa__85
Hejsan!
har en kod som ska ta bort ett inlägg:
if request.querystring("action")="tabort" then
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM klotter where id = "&request.querystring("ID")
rs.Open Addera, Connect, 3, 3
rs.delete
rs.update
response.redirect "klotter.asp"
end if
Men den skickar bara tillbaka till klotter.asp utan att ta bort det...
Why?
Det kanske går bättre om du tar bort det med SQL direkt?
if request.querystring("action")="tabort" then
strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
Connect.Execute(strSQL)
response.redirect "klotter.asp"
end if
Nopes, inlägget finns fortfarande kvar :s men inga felmeddelanden ges...
Är du säker på att det finns något värde i querystringen då?
if request.querystring("action")="tabort" then
If IsNumeric(Request.QueryString("ID")) Then
strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
Connect.Execute(strSQL)
response.redirect "klotter.asp"
Else
Response.Write("Ajdå...")
End If
end if
Sebbe skrev:
Är du säker på att det finns något värde i querystringen då?
if request.querystring("action")="tabort" then If IsNumeric(Request.QueryString("ID")) Then strSQL = "DELETE FROM klotter where id = "&request.querystring("ID") Connect.Execute(strSQL) response.redirect "klotter.asp" Else Response.Write("Ajdå...") End If end if
Hur tar jag reda på om de finns nått värde?
Testade din kod, men man skickades tillbaka till klotter.asp, utan att den tog bort eller skrev Ajdå...
Du råkar inte ha med On Error Resume Next någonstans i koden, eftersom felmeddelanden då inte visas?
Nopes har inget sånt...
OK, nu kör vi en hårdkoll här! ;)
if request.querystring("action")="tabort" then
If IsNumeric(Request.QueryString("ID")) Then
strSQL = "SELECT id FROM klotter WHERE id = " & Request.QueryString("ID")
Set objRS = Connect.Execute(strSQL)
If objRS.EOF Then
Response.Write("Ajdå...")
Set objRS = Nothing
Else
Set objRS = Nothing
strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
Connect.Execute(strSQL)
response.redirect "klotter.asp"
End If
Else
Response.Write("Ajdå...")
End If
end if
Sebbe skrev:
OK, nu kör vi en hårdkoll här! ;)
if request.querystring("action")="tabort" then If IsNumeric(Request.QueryString("ID")) Then strSQL = "SELECT id FROM klotter WHERE id = " & Request.QueryString("ID") Set objRS = Connect.Execute(strSQL) If objRS.EOF Then Response.Write("Ajdå...") Set objRS = Nothing Else Set objRS = Nothing strSQL = "DELETE FROM klotter where id = "&request.querystring("ID") Connect.Execute(strSQL) response.redirect "klotter.asp" End If Else Response.Write("Ajdå...") End If end if
Tro de eller ej, men exakt samma resultat som tidigare :s
Det låster nästan som om du har någon annan Response.Redirect() någonstans som skickar vidare besökaren dit, för att om det inte tas bort när man har gjort så där är en praktisk omöjlighet! :)
Skickar med hela kodsnutten:
<%
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/klotter.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM klotter order by id desc"
rs.Open Addera, Connect, 3, 3
Count = rs.recordcount
if request.querystring("action")="spara" then
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM klotter "
rs.Open Addera, Connect, 3, 3
rs.addnew
rs("text")=request.form("inlagg")
rs("namn") = session("user")
rs("namnid")=session("id")
rs("datum") =now
rs.update
if request.querystring("action")="tabort" then
If IsNumeric(Request.QueryString("ID")) Then
strSQL = "SELECT id FROM klotter WHERE id = " & Request.QueryString("ID")
Set objRS = Connect.Execute(strSQL)
If objRS.EOF Then
Response.Write("Ajdå...")
Set objRS = Nothing
Else
Set objRS = Nothing
strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
Connect.Execute(strSQL)
response.redirect "klotter.asp"
End If
Else
Response.Write("Ajdå...")
End If
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("id")&"'"
rs.Open Addera, Connect, 3, 3
rs("status") = rs("status") + poangklotter
rs.update
response.redirect "klotter.asp"
end if
rs.PageSize = 10
if not rs.EOF then
rs.AbsolutePage = nextPage
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("databas/klotter.mdb")
query = "select count(*) as antal, namn from klotter group by namn order by 1 desc"
set rs3 = connect.execute(query)
%>
<% END IF %>
När jag ändå skickat den, e det nått i koden du ser man skulle kunna förbättra?
Tack för all hjälp hittills!
Inte helt säker på vad allt gör i din kod, men något sånt här kanske? :)
<%
nextPage = TRIM( Request("nextPage"))
IF nextPage = "" THEN nextPage = 1
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath ("databas/klotter.mdb")
if request.querystring("action")="spara" then
strSQL = "INSERT INTO klotter (text, namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#")"
Connect.Execute(strSQL)
ElseIf request.querystring("action")="tabort" then
If IsNumeric(Request.QueryString("ID")) Then
strSQL = "DELETE FROM klotter where id = "&request.querystring("ID")
Connect.Execute(strSQL)
response.redirect "klotter.asp"
Else
Response.Write("Ajdå...")
End If
end if
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath ("databas/databas.mdb")
strSQL = "UPDATE anv SET status = status + " & poangklotter & " WHERE id = '" & Session("id") & "'"
objConn.Execute(strSQL)
objConn.Close : Set objConn = Nothing
strSQL = "SELECT * FROM klotter"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Connect, 1, 3
rs.PageSize = 10
if not rs.EOF then
rs.AbsolutePage = nextPage
query = "select count(*) as antal, namn from klotter group by namn order by 1 desc"
set rs3 = connect.execute(query)
End If
rs.Close : Set rs = Nothing
Connect.Close : Set Connect = Nothing
%>
Nu funkar de kanon att ta bort inlägg!
Men, den klagar på en sak:
Microsoft VBScript compilation error '800a0401'
Expected end of statement
/adde/star/2/klotter.asp, line 28
strSQL = "INSERT INTO klotter (text, namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#")"
------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
varför då?
Ojdå, byt bara ut den raden till
strSQL = "INSERT INTO klotter (text, namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#)"
:r
Nu säger den bara
Microsoft JET Database Engine error '80040e14'
Syntax error in INSERT INTO statement.
/adde/star/2/klotter.asp, line 29
när jag ska spara ett inlägg.. rad 29 är strSQL satsen..
Text är ett reserverat ord. Antingen byter du namnet på fältet, eller så ändrar du raden till det här:
strSQL = "INSERT INTO klotter ([text], namn, namnid, datum) VALUES ('" & Request.Form("inlagg") & "', '" & Session("user") & "', '" & Session("id") & "', #" & Now() & "#)"
Tack för all hjälp!! TACk!!
<html>
<!-- #include file="adovbs.inc" -->
<b>Radera ur adressboken!</b>
<hr noshade size="1">
<% Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("db/df.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Radera = "SELECT * FROM members ORDER BY username"
RecSet.Open Radera, Conn, 3, 3 %>
Följande adresser finns att radera ur adresseboken.\<p\>
\<ul\>
<% Do Until RecSet.EOF %>
\<li\>\<% =RecSet("namn") %\> \<b\>\<% =RecSet("username") %\>\</b\>\<br\>
\<% =RecSet("efternamn") %\>\<br\>
\<a href="tabort.asp?delID=\<% =RecSet("ID") %\>"\>Radera denna adress\</a\>
\<hr noshade size="1" width="250" align="left"\>
<% RecSet.MoveNext
Loop
RecSet.Close %>
</body>
</html>