If IsNULL(Sidnamn) Then Eftersom du inte skriver Null-tecken i formen kan du göra såhär istället: Oj, ursäkta, såhär ska det givetvis vara! OK det funkar, men nu så är felet att istället för att bara "tömma" sidnamn så tas allt bort där ID = Request.Querystring("ID") =/ DELETE raderar aktuell post, så det är helt riktigt. Du kan använda UPDATE istället: Jag föreslår som JohanD. Att du använder "If Len(Sidnamn) > 0 Then" Eftersom detta även hanterar nullvärden. Du får byta plats på utrycken i ifsatsen: Testade ditt sätt Anders. Får samma fel, alltså att allt där ID överenstämmer tas bort och inte bara i kolumnen 'Sidnamn'! Fattar inte detta! Joakim: Kolla på mitt inlägg ovan från 18:15:12, din SQL-sats gör inte det du menar. Tackar, tackar! Nu funkar det, men ja förstår fortfarande inte varför 'Delete WHERE Sidnamn' inte funkade!! Tacka iaf DELETE innebär att du raderar posten, att du sedan tar med ett fältnamn är fel, men det bryr den sig inte Access om (tror att SQL-server gör det, eller så var det någon annan databas...). Korrekt syntax för delete är:If IsNULL
Set Delete = Server.CreateObject("ADODB.Connection")
Set Rad = Server.CreateObject("ADODB.Recordset")
Delete.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("../../Databas/databas.mdb")&";"
D = "DELETE Sidnamn From guestbook WHERE ID = "&Request.Querystring("ID")
Rad.Open D, Delete, 1, 2
Delete.Close
Rad.Close
Else
RecSet("Sidnamn") = Sidnamn
End If
Sidnamn är plockat från en form, och om den är tom så ska 'Sidnamn' raderas från 'guestbook', problemet är att If satsen aldrig är sann. Dvs. att den alltid går till Else!Sv: If IsNULL
If Len(Sidnamn) > 0 Then
/JohanSv: If IsNULL
If Len(Sidnamn) = 0 Then
Om detta inte fungerar, innehåller Sidnamn verkligen det du har tänkt?
/JohanSv: If IsNULL
Som att skriva * isället för 'Sidnamn'
D = "DELETE Sidnamn From guestbook WHERE ID = "&Request.Querystring("ID")
Rad.Open D, Delete, 1, 2
Så ser det ut!Sv: If IsNULL
D = "UPDATE guestbook SET Sidnamn = NULL WHERE ID = "&Request.Querystring("ID")
eller såhär om du vill ha en tom sträng istället:
D = "UPDATE guestbook SET Sidnamn = '' WHERE ID = "&Request.Querystring("ID")
/JohanSv: If IsNULL
<code>
If Len(Sidnamn) > 0 Then
RecSet("Sidnamn") = Sidnamn
Else
Set Delete = Server.CreateObject("ADODB.Connection")
Delete.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("../../Databas/databas.mdb")&";"
Delete.Execute "DELETE Sidnamn From guestbook WHERE ID = "&Request.Querystring("ID")
Delete.Close
End If
</code>
Eftersom frågan inte retunerar något recordset är det dumt att använda ett. Du får ett fel eftersom recordset'et redan är stängt. ADO kan ju inte stänga ett stängt recordset. Använd istället execute på connection objektet.Sv: If IsNULL
Sv: If IsNULL
/JohanSv: If IsNULL
//JockeSv: If IsNULL
"DELETE FROM guestbook WHERE ID = " & Request.Querystring("ID")
/Johan