Avatar billede celine Nybegynder
27. juli 2004 - 10:00 Der er 9 kommentarer og
1 løsning

delete fra access database

hej

Jeg vil gerne kunne slette nogle poster fra en database. Først finder jeg posten ved hjælp af dette:


    set strConn = Server.CreateObject("ADODB.connection")
    set rs = Server.CreateObject("ADODB.recordset")
    strConn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strPlacering
    strSQL ="SELECT * from spoergsmol ORDER by id desc"
    rs.open strSQL, strConn, adOpenStatic, adLockOptimistic
   
   

   
%>

<tr><td valign="top"><div id="svarfelt">
<br><br>Vælg spørgsmål fra databasen<br><br><form action="adm_slet_sp.asp" name="sletsp" method="post">
<select name="slet" style="width: 150px">
<%
do
    Response.Write "<option value=""" & rs.fields("titel") & """>" & rs.fields("titel") & "</option>"
    rs.movenext
    Loop while not rs.EOF
       
        rs.close
        set rs = nothing
%>
    </select><input type="submit"  name="sog_sp" value=" Søg "></form>
<%


sletsp = Request.Form("slet")
find_post(sletsp)
sub find_post(sletsp)
    set objConn = Server.CreateObject("ADODB.connection")
    set rs = Server.CreateObject("ADODB.recordset")
    objConn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strPlacering
    strSQL ="SELECT * from spoergsmol ORDER BY id desc"
    rs.open strSQL, objConn, adOpenStatic, adLockOptimistic
   
    do while not(rs.EOF)
        if (rs.fields("titel") = sletsp) then
       
            id = rs.fields("id")
            email = rs.fields("email")
            fornavn = rs.fields("fornavn")
            efternavn = rs.fields("efternavn")
            titel = rs.fields("titel")
            spoergsmol = rs.fields("spoergsmol")
            svar = rs.fields("svar")
    exit do
    end if
        rs.MoveNext
    loop
   
    rs.close
    set rs = nothing
    objConn.close
    set objConn = nothing
end sub

Så vises posten her:

<form action="adm_slet.asp" name="sletsporgs">
    <table class="table3"><tr><td>Navn <%=fornavn%> &nbsp;<%=efternavn%></td></tr>
    <tr><td>Email:<%=email%></td></tr>
    <tr><td><b>Titel: <%=titel%></b><hr></td></tr>
    <tr><td>Spørgsmål:<br> <%=spoergsmol%></td></tr>
    <tr><td><hr color="#CCCCCC"><br><br>Svar: <% =svar%></td></tr></table>
<input type="submit" name="delete_sp" value=" delete "></form>   

og så kan jeg ikke komme længere. jeg har prøvet utallige udgaver af det her:


sub slet_post
    set objConn = Server.CreateObject("ADODB.connection")
    objConn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strPlacering   
    strSQL ="DELETE from spoergsmol WHERE id='" & id & "'"
    set objRec = objConn.execute(strSQL)
    response.Redirect("adm_slet_sp.asp")
end sub
objConn.close
set objConn = nothing

hvad gør man!

hilsen Celine
Avatar billede zantiago Nybegynder
27. juli 2004 - 10:25 #1
Du kan bare kalde posten, via dit ID - derefter skriver du bare:
rs.delete
rs.update

:o)

//Z
Avatar billede phineas_phreak Nybegynder
27. juli 2004 - 19:35 #2
skal
strSQL ="DELETE from spoergsmol WHERE id='" & id & "'"
ikke være således :
strSQL ="DELETE from spoergsmol WHERE id=" & id & ""
Avatar billede celine Nybegynder
28. juli 2004 - 12:30 #3
hej
gider du ikke udybe det lidt mere jeg ved ikke helt hvad du mener. jeg er håbløs nybegynder. :-)

celine
Avatar billede phineas_phreak Nybegynder
28. juli 2004 - 13:03 #4
det er faktisk meget simpelt. du kalder som zantiago bare den post du vil slette via et ID. i store hovedtræk kan du gøre følgende:

lav 2 sider.

på side 1 udtrækker alle dine poster fra databasen og ved hvert udtræk laver du et link som kunne se således ud:

<a href="sletpost.asp?id=<%= rs("id") %>">slet post</a>

på side 2 (sletpost.asp)

laver du db connect og definerer dit SQL udtræk nogenlunde således (her eksempel med en ACCESS db):

side2:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("databasenavn.mdb")

strSQL = "DELETE * FROM tabelnavn WHERE ID=" & Request("ID")
Conn.Execute (strSQL)
%>

Den valgte operation er nu slettet fra databasen

<%
conn.Close
Set conn = nothing
Set strSQL = nothing
%>


håber det var mere forståeligt.

men pointen er at det er i din strSQL linje at fejlen højst sandsynlig forekommer fordi syntaxen er forkert.

du tolker dit ID som tekst ved at sætte ' ' omkring. ID er ofte af typen autonummerering eller tal og skal således IKKE have ' ' omkring
Avatar billede celine Nybegynder
28. juli 2004 - 20:38 #5
hej

nu har jeg afprøvet det og det virker ikke


min kode på side 2 er :
sub slet_post
    set objConn = Server.CreateObject("ADODB.connection")
    objConn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strPlacering   
    strSQL = "DELETE * FROM spoergsmol WHERE ID=" & Request("ID")
    objConn.Execute (strSQL)
   
   
end sub

    response.Redirect("adm_slet_sp.asp")
    objConn.close
    set objConn = nothing
    set strSQL = nothing
Avatar billede phineas_phreak Nybegynder
29. juli 2004 - 01:38 #6
hvilken fejlmeddelelse får du, og hvad står der i din strplacering ?
Avatar billede celine Nybegynder
29. juli 2004 - 15:42 #7
Hvis jeg bruger denne sætning får jeg denne fejl:
<a href="adm_slet.asp?id=<%=rs("id")%>">slet post</a>

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typer stemmer ikke overens
/forum/adm_slet_sp.asp, line 103


Bruger jeg det her sker der ingenting.
sub slet_post
    set objConn = Server.CreateObject("ADODB.connection")
    objConn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & strPlacering   
    strSQL = "DELETE * FROM spoergsmol WHERE ID=" & Request("ID")
    objConn.Execute (strSQL)
    rs.delete
    rs.update
end sub

    response.Redirect("adm_slet_sp.asp")
    objConn.close
    set objConn = nothing
    set strSQL = nothing


Min connect ser sådan ud. Den burde virker da jeg kan indsætte og opdatere databasen uden problemer.

dim strDriver
dim strPlacering

strDriver = "{Microsoft Access Driver (*.mdb)}"
strPlacering = "c:\inetpub\dbroot\forum.mdb"
Avatar billede phineas_phreak Nybegynder
29. juli 2004 - 17:08 #8
adm_slet.asp?id=<%=rs("id")% >

og

forum/adm_slet_sp.asp, line 103

er jo 2 forskellige filer. er du sikker på det er det ikke er et andet sted fejlen forekommer ? og hvorfor kører du db connect og slet streng i en sub ?

den side dit link henviser til

en_side.asp?id=<%=rs("id") %>

skal indeholde

strSQL = "DELETE * FROM spoergsmol WHERE ID=" & Request("ID")
Avatar billede celine Nybegynder
03. august 2004 - 10:26 #9
så Phineas

Nu har jeg lavet den her
adm_slet.asp?id=<%=rs("id")% >

om til det her
adm_slet.asp?id=<%=id%>

Min sub har jeg fjernet - og nu virker det.
så kom med et svar så du kan få dine point.
Avatar billede phineas_phreak Nybegynder
03. august 2004 - 12:12 #10
jamen det var da godt du fik det til at virke.
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