Avatar billede swing Nybegynder
16. maj 2001 - 02:16 Der er 4 kommentarer og
1 løsning

Slette en post

Hej Eksperter - jeg har brug for hjælp.

jeg har et problem med at få slettet en post i en access database via et aspscript. Jeg får en fejl i Ors.Find:

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.



Her er koden:

<%
    Dim varConfirm
    varConfirm = Request.Form(\"Confirm\")
    If varConfirm=\"no\" Then
    Response.Redirect \"deleteform.asp\"
    End If
   
    Dim varName
    varName = Request.Form(\"Name\")
   
    Dim Ors
    Set Ors=Server.CreateObject(\"ADODB.Recordset\")
    Ors.Open \"Items\", \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\\items.mdb\",adOpenDynamic,adLockOptimistic
    Ors.Find \"Name=\" & VarName
    If Ors.EOF Then
    Response.Write \"Ingen varer fundet\"
    Else
    Ors.Delete adAffectCurrent
    End If
    Response.Write \"Varen er slettet\"
    Ors.MoveFirst
    %>
    <Form><p><b>
    <select name=\"Name\">
      <%     Do While not Ors.EOF %>
      <option value=\"<%=Ors(\"Name\")%>\"> <%=Ors(\"Name\")%></option>
      <% Ors.MoveNext
    Loop
   
    %>
    </select>
    </b></p>
    </Form>
    <%
    Ors.Close
    Set Ors=nothing
    %>
Avatar billede perla Nybegynder
16. maj 2001 - 02:50 #1
TRor du mangler includen af adovbs.inc filen, der er flere småting så jeg vedlægger lige et eksempel.

<!-- #INCLUDE VIRTUAL=\"/adovbs.inc\" -->

  \' Standard DSNless connection til databasen db.mdb
  Set Con = Server.CreateObject(\"ADODB.Connection\")
  DBPath = \"DBQ=\" & server.mappath(\"db.mdb\")
  Con.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath

  \' Vores SQL-forespørgsel vi ønsker paget
  Sql = \"SELECT * FROM tabel\"

  \' Så begynder det sjove - her sætter vi vores recordset op...
  \' Jeg vil ikke gennemgå alt hvad recordsetkoden gør.
  \' Kig evt. i en dokumentation hvis du ikke helt er med på hvad der er hvad... :-)
  Set rs = Server.CreateObject(\"ADODB.Recordset\")
  rs.CursorType = adOpenStatic

  \' Hvor mange records vil have på hver side... her er den sat til 10
  rs.PageSize = 10
  rs.Open(Sql), Con

-Per
Avatar billede ricardo Nybegynder
16. maj 2001 - 07:21 #2
Avatar billede swing Nybegynder
16. maj 2001 - 17:22 #3
Hej Per
adovbs.inc er inkluderet, så det er ikke det. Stien fungerer også fint, jeg får hentet poster i databasen, bare ikke den jeg vil slette. Den skulle blive fundet i sætningen Ors.find men returnerer en fejl istedet.
Avatar billede perla Nybegynder
16. maj 2001 - 17:59 #4
Variablen varname skal sandsynligvis i \' \', Hedder både databasen og tabellen Items? Kan ikke se tabelnavnet ellers

Når jeg vil slette bruger jeg en anden metode der slet ikke bruger recordset, men connection.

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"Items.mdb\")
strSQL = \"DELETE * FROM Items WHERE Name=\'\" & VarName \'\"
set RS = conn.execute( strSQL )
Response.write \"Entry slettet\"

Håber det giver dig nye muligheder.

-Per
Avatar billede swing Nybegynder
16. maj 2001 - 19:24 #5
Hmm
når jeg sætter \'om variablen får jeg begge response.write setninger skrevet ud:
ingen varer fundet varen er slettet

men varen er ikke slettet.
underligt. Der må være noget galt i et af mine andre scripts, jeg må nok gennemgå dem igen. Men tak for hjælpen (du får pointene for din gode vilje :-))
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