Avatar billede benhur Nybegynder
04. oktober 2004 - 20:03 Der er 8 kommentarer og
1 løsning

Slette felter i access med betingelser

Hejsa
Jeg er ny indenfor programmering og asp, og jeg har efterhånden afprøvet alt hvad jeg kunne komme på for at få det til at virke... men nej.

Jeg ville lave sådan at når man trykkede på et link ( <a href="slet_data.asp?id=<%=Rs("UserID")%>">slet</a> )
Kommer man til den anden side hvor man så bliver spurgt om man er sikker på man vil slette rækken i tabellen.
Jeg har så lavet to links, et JA-link og et NEJ-link
Mit problem er når der bliver trykket JA så forsvinder den værdi jeg har lagt ind i en variabel vha. request.querystring("id")
Har bl.a. prøvet at sætte værdien ind i en session, men det giver samme resultat. Så nu er spørgsmålet om der er en eller anden simpel metode, som jeg bare ikke kender til?

Skriver lige koden. Det skal lige nævnes at den bærer præg af mine mange forsøg... :)¨

<%
<!--#Include file="adovbs.inc"-->

Set MinConn=Server.CreateObject("ADODB.Connection")
MinConn.Open "PROVIDER=MSDASQL;" & _
"DRIVER={Microsoft Access Driver (*.mdb)}; " & _
"DBQ=" & server.mappath("./fpdb/db1.mdb")


ID = Request.Querystring("id")
Session("id") = ID
Session.Timeout = 2
Response.write ID
%>
<h3><b>Er du sikker på du vil slette:</b></h3>
<a href="slet_data.asp?Svar=JA">Ja</a>&nbsp; <a href="slet_data.asp?Svar=NEJ">Nej</a>
<a href="slet_data.asp?Svar=JA&id=<% Session("id") %>">slet</a>
<%

Dim Svar
Svar = ""
Svar = Request.Querystring("Svar")
Response.write ID
If Svar = "JA" Then
    ID2 = Session("id")
    sletSQL="DELETE * from tUsers WHERE UserID="&ID2
    MinConn.Execute(sletSQL)
    Response.redirect("Slet_poster.asp")
Elseif Svar = "NEJ" Then
    Response.redirect("slet_poster.asp")

End if
%>

Eftsom jeg er ny både her og i asp, ved jeg ikke hvad et svært eller let spørgsmål så der er bare points for et medium. Ellers må i jo råbe op.

På forhånd tak...
Avatar billede eagleeye Praktikant
04. oktober 2004 - 21:02 #1
Umiddelbart mangler der bare et ligmed tegn:

<a href="slet_data.asp?Svar=JA&id=<%= Session("id") %>">

Men når du afligevel har gemt ID'et i session variablen kunne du bruge den.
Avatar billede benhur Nybegynder
04. oktober 2004 - 21:44 #2
Hehe det er sgu typisk, at det er såda en lille ting :)
Tak skal du have.

Du får pointene, men jeg har prøvet at køre den direkte fra sessionen, men det virker ikke.
Prøvede at skrive det sådan her, men det virker ikke:

ID = Request.Querystring("id")
Session("id") = ID
Session.Timeout = 2
%>
<h3><b>Er du sikker på du vil slette:</b></h3>
<a href="slet_data.asp?Svar=JA">JA</a>&nbsp; <a href="slet_data.asp?Svar=NEJ">Nej</a>

<%
Dim Svar
Svar = ""
Svar = Request.Querystring("Svar")

If Svar = "JA" Then
    sletSQL="DELETE * from tUsers WHERE UserID="&Session("id")
    MinConn.Execute(sletSQL)
    Response.redirect("Slet_poster.asp")

Elseif Svar = "NEJ" Then
   
    Response.redirect("slet_poster.asp")

End if
Session.Abandon
%>
Avatar billede eagleeye Praktikant
04. oktober 2004 - 21:50 #3
Ok det går ikke aflgievel med session da du har kaldt Session.Abandon til sidst i koden så bliver session variablen slettet ;)

Så må du enten bruge ID'et fra Querystringen eller fjerne linjen Session.Abandon
Avatar billede benhur Nybegynder
04. oktober 2004 - 21:54 #4
Tænkte netop det samme efter jeg havde skrevet :)
Det hjælper dog ikke at fjerne Session.Abandon, så får jeg samme fejl som tidligere:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'UserID='.
Avatar billede eagleeye Praktikant
04. oktober 2004 - 21:57 #5
ok en anden lille detalje så skal dette:

ID = Request.Querystring("id")
Session("id") = ID


laves om til dette, så den ikke kommer til at overskrive ID'et i session hvis ID er tom:

ID = Request.Querystring("id")
if ID<>"" then Session("id") = ID
Avatar billede benhur Nybegynder
04. oktober 2004 - 22:18 #6
Det funger bare nu.
Tak skal du have mester
Avatar billede benhur Nybegynder
04. oktober 2004 - 22:22 #7
Den gidder ikke at acceptere det... prøver igen imorgen, men tak endnu engang.
Avatar billede eagleeye Praktikant
04. oktober 2004 - 22:25 #8
Forøvrigt, prøv at fjerne * fra SQL sætningen:

sletSQL="DELETE from tUsers WHERE UserID="&Session("id")
Avatar billede benhur Nybegynder
05. oktober 2004 - 14:14 #9
Jeg ved ikke hvorfor, men der sker nada når jeg prøver at acceptere dit svar...
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