Avatar billede carsten_mc Nybegynder
24. februar 2007 - 17:31 Der er 10 kommentarer og
1 løsning

Sletning af emne i MS Acces - 0x80040E23 Fejl

Hey...

Jeg har et lille problem som jeg håber at der er nogen der kan hjælpe mig med.

Jeg har en database. Her skal man kunne slette en post ved at skrive navnet på emnet ind i en tekstboks.

Jeg kan godt få den til at slette emnet, men jeg får samtidig denne fejl:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E23)
Rækkehandlen henviste til en slettet række eller en række, der ventede på at blive slettet.
/varde/nyhedsbrev_delete.asp, line 61


Jeg bruger denne kode:
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM nyhedsbrev"
rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
rs.delete
rs("Email") = Request.Form("email")
response.redirect "nyhedsbrev_tak.asp"
else
%>

Er der nogen der kan hjælpe mig med mit problem
Avatar billede kalp Novice
24. februar 2007 - 17:33 #1
det her kan du ikke

rs("Email") = Request.Form("email")
Avatar billede kalp Novice
24. februar 2007 - 17:35 #2
du bruger det helle ikke til noget???
eller kommer det i din else?

om ikke andet så skal du ikke prøve at gemme noget i dit resultset (som du desuden lige har slettet den række i)

gem det i en ny variabel. altså

dim email = Request.Form("email")
Avatar billede softspot Forsker
24. februar 2007 - 17:35 #3
Det er fordi du refererer feltet email efter du har slettet rækken - det må du ikke. Hvis du skal bruge emailen fra den række du sletter, så skal du aflæse den før du sletter.
Avatar billede softspot Forsker
24. februar 2007 - 17:36 #4
Det her kan man ikke i VBS:

dim email = Request.Form("email")

Det skal være sådan her:

dim email
email = Request.Form("email")

:)
Avatar billede kalp Novice
24. februar 2007 - 17:42 #5
he he det var faktisk rent dovenskab at jeg ikke opdelte det sådan:P
plejer jeg at gøre:) men har været ude og løbe så mine fingre ryster stadig.

dejlig vejr :P
Avatar billede carsten_mc Nybegynder
24. februar 2007 - 17:46 #6
Den skal slette posten ud fra emailen...

Gider du at skrive præcist hvordan koden skal være:)
Avatar billede softspot Forsker
24. februar 2007 - 18:09 #7
Den hurtige ville være således:

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  email = Replace(Request.Form("email"),"'","''")
  Conn.Execute("DELETE FROM nyhedsbrev WHERE email = '" & email & "'"
  Response.Redirect "nyhedsbrev_tak.asp"
else
%>
Avatar billede softspot Forsker
24. februar 2007 - 18:10 #8
UPS! Lidt for hurtigt :D

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  email = Replace(Request.Form("email"),"'","''")
  Conn.Execute("DELETE FROM nyhedsbrev WHERE email = '" & email & "'")
  Response.Redirect "nyhedsbrev_tak.asp"
else
%>
Avatar billede carsten_mc Nybegynder
10. marts 2007 - 14:09 #9
softspot. Lav et svar, så du kan få dine point.
Avatar billede softspot Forsker
10. marts 2007 - 17:51 #10
Kommer der :)
Avatar billede softspot Forsker
11. marts 2007 - 13:59 #11
Tak for point :)
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