Avatar billede sbk-eraser Nybegynder
09. februar 2006 - 21:14 Der er 15 kommentarer og
1 løsning

Slette post i Access database

Jeg har en side hvor jeg kalder poster fra en access database frem i en tabel, koden ser således ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
set rs = Conn.execute(strSQL)

if rs.EOF then
Response.write ""
else
Do Until rs.EOF
%>
<%
If (i MOD 2 = 0) Then
bg = "#B9C9DC"
Else
bg = "#A2B3C6"
End If
i = i + 1
%>

<tr style="background-color: <%=bg%>;">
<td><img src="gfx/<%=RS("inf1")%>.gif"></td>
<td><a href="<%=RS("inf8")%>" TARGET="_blank"><%=RS("inf2")%></a></td>
<td><%=RS("inf3")%></td>
<td><%=RS("inf4")%></td>
<td><%=RS("inf5")%></td>
<td><img src="gfx/<%=RS("inf6")%>.gif"></td>
<td><%=RS("inf7")%></td>
    </tr>
<%RS.MoveNext
Loop
end if

Conn.Close
Set Conn = Nothing%>

Men, jeg vil gerne have en ekstra <td> med en knap der kan slette den pågældende post, altså så der kommer en knap i hver enkelt <tr> som kan slette den aktuelle post fra databasen.

/eraser
Avatar billede flashit Nybegynder
09. februar 2006 - 21:33 #1
Så skal du i din "form action" gå til en side med en url indeholdende en id på den post du vil slætte.

Her er lidt at starte med :-)

URL
http://www.html.dk/tutorials/asp/lektion10.asp

Slet post
http://www.html.dk/tutorials/asp/lektion21.asp
Avatar billede Slettet bruger
09. februar 2006 - 21:52 #2
arh... det kan nu godt gøres lidt nemmere og smartere end dette...
Hvad med bare at sætte en knap ind som ved klik linker til en "slette-side"?
- sådan her:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
set rs = Conn.execute(strSQL)

if rs.EOF then
Response.write ""
else
Do Until rs.EOF
%>
<%
If (i MOD 2 = 0) Then
bg = "#B9C9DC"
Else
bg = "#A2B3C6"
End If
i = i + 1
%>

<tr style="background-color: <%=bg%>;">
<td><img src="gfx/<%=RS("inf1")%>.gif"></td>
<td><a href="<%=RS("inf8")%>" TARGET="_blank"><%=RS("inf2")%></a></td>
<td><%=RS("inf3")%></td>
<td><%=RS("inf4")%></td>
<td><%=RS("inf5")%></td>
<td><img src="gfx/<%=RS("inf6")%>.gif"></td>
<td><%=RS("inf7")%></td>
<td><input type="button" value="Slet" onclick="document.location('sletpost.asp?id=\\DIT ID PÅ POSTEN!//')" name="slet"></td>
    </tr>
<%RS.MoveNext
Loop
end if

Conn.Close
Set Conn = Nothing%>

Der hvor der nu står "\\DIT ID PÅ POSTEN!//" skal du ændre til den kollonne du har i din database som er din primærnøgle... den hedder som regel "id" eller sådan noget...
Dernæst skal vi vel også se på den asp-fil som hedder "sletpost.asp"...

\Dan
Avatar billede flashit Nybegynder
09. februar 2006 - 21:57 #3
?? er det ikke det samme som det jeg skrev... du gøre det bare med onclick i stedet :-)
Avatar billede sbk-eraser Nybegynder
09. februar 2006 - 22:22 #4
min liste ser nu sådan ud:
bla bla bla...
%>

<tr style="background-color: <%=bg%>;">
<td><img src="gfx/<%=RS("inf1")%>.gif"></td>
<td><a href="<%=RS("inf8")%>" TARGET="_blank"><%=RS("inf2")%></a></td>
<td><%=RS("inf3")%></td>
<td><%=RS("inf4")%></td>
<td><%=RS("inf5")%></td>
<td><img src="gfx/<%=RS("inf6")%>.gif"></td>
<td><%=RS("inf7")%></td>
<td><input type="button" value="Slet" onclick="document.location('delete.asp?id=<%=RS("ID")%>')" name="slet"></td>
    </tr>
<%RS.MoveNext
Loop
end if

Conn.Close
Set Conn = Nothing%>

----------------

min delete.asp ser sådan ud:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb") & ";UID=admin;PWD=;"
Conn.Open DSN

strSQL = "Delete from NAVN where Id = " & Request.Querystring("ID") & "
Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

...
Men, der sker intet når jeg trykker på knappen
Avatar billede flashit Nybegynder
09. februar 2006 - 22:49 #5
Prøv med denne i dit onclick.
onclick="location.href='delete.asp?id=<%=RS("ID")%>'"
Avatar billede flashit Nybegynder
09. februar 2006 - 22:50 #6
Skal din sql ikke også lukkes ? Eller er det bare mig :-)
strSQL = "Delete from NAVN where Id = " & Request.Querystring("ID") & ""
Avatar billede sbk-eraser Nybegynder
09. februar 2006 - 22:55 #7
ahh ffs :)
Så spiller det bare :)
Avatar billede sbk-eraser Nybegynder
09. februar 2006 - 22:59 #8
vil i komme med et svar så i kan få point ?
Avatar billede Slettet bruger
09. februar 2006 - 23:02 #9
flashit! Jo, det var formentlig det samme som du skrev... Bortset fra at jeg kom med et eksempel og at du ikke gjorde men "bare" kom med et par links til løsningen... Og jeg ville bare pointere at her er der ingen grund til noget "form-action"... Dette ville kun gøre det hele mere besværligt en der er grund til...

- Dette var ikke et forsøg på at tage æren fra hverken dig eller nogen anden! Jeg ville blot vise et konkret eksempel og ville dermed supplere dit svar...

\Dan
Avatar billede flashit Nybegynder
09. februar 2006 - 23:03 #10
Tak
Avatar billede flashit Nybegynder
09. februar 2006 - 23:09 #11
NP :-)
Avatar billede Slettet bruger
09. februar 2006 - 23:12 #12
- Jeg skal ikke have nogen point!

\Dan
Avatar billede flashit Nybegynder
09. februar 2006 - 23:14 #13
kom nu Dan, det er jo din løsning som er blevet brugt...
Avatar billede sbk-eraser Nybegynder
09. februar 2006 - 23:26 #14
well, faktisk brugte jeg et link istedet da knappen lavede uorden i min tabel ;
<td><a href="delete.asp?id=<%=RS("ID")%>">Slet</a></td>
men tak for svarene...
Avatar billede flashit Nybegynder
09. februar 2006 - 23:32 #15
ok..

Jeg har på arbejde været ude for at vores søgemaskine slettede alle posterne i en application, hvor jeg brugte et "a href" til at slette med.
Du skal nok sætte en "er du sikker" på, så det ikke kan ske.
Jeg ved ikke om det er et problem andre steder, da jeg altid (NU) bruger en knap :-)
Avatar billede sbk-eraser Nybegynder
11. februar 2006 - 13:09 #16
det kan vel ikke lade sig gøre når siden kræver login ?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester