webForumDet fria alternativet
Logga in / Bli medlem

If not rs.EOF problem...

ASP

8 svar · 228 visningar · startad av JAreMANNEN

Medlem sedan aug. 20002 272 inlägg
Trådstart#1

Hell0!

Får detta felmeddelande:

ADODB.Recordset (0x800A0E78)
Åtgärden är inte tillåten när objektet är stängt.
insert.asp, line 22

På följande...

<% @LANGUAGE=VBScript %>
<% 
    Option Explicit

    '###Här deklareras kopplingsvariablerna###
    Dim Conn, strSQL, strFornamn, strEfternamn, strUIN, strEpost, strOrt, strPassw, objRS

    '###Här skapas databaskopplingen###
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=epostkatalog.mdb"

    strFornamn = Request.Form("fornamn")
    strEfternamn = Request.Form("efternamn")
    strUIN = Request.Form("icq")
    strEpost = Request.Form("epost")
    strOrt = Request.Form("ort")
    strPassw = Request.Form("passw")

    '###Här anges hur/vart informationen ska hanteras###
    strSQL = " INSERT INTO epostlista (fld_fornamn, fld_efternamn, fld_icq, fld_epost, fld_ort, fld_passw) "
    strSQL = strSQL & " VALUES ( '" & strFornamn & "', '" & strEfternamn & "', " & strUIN & ", '" & strEpost & "', '" & strOrt & "', '" & strPassw & "')"
    Set objRS = Conn.Execute(strSQL)
%>

<%
    [b]If NOT objRS.EOF Then[/b]

    Response.Write " Några av dina uppgifter finns redan i vår databas!<br>Om du vill ändra dina uppgifter trycker du på ""Ändra uppgifter""! "
    Else
    Response.Write " KLART! "
    End If

    '###Stänger databaskopplingen###
    objRS.Close
    Set objRS = Nothing

    Conn.Close
    Set Conn = Nothing
%>

Vad är fel... :q

Blir inte klok på detta! Har juh inte stängt någonting före felmeddelandet..?
THX!

Medlem sedan feb. 200144 inlägg
#2

Jag ser inte att du hämtat något recordset. Ändra nedanstående.

Kod:
Set objRS = Conn.Execute(strSQL) ändras till Conn.Execute(strSQL)
Set objRS = Conn.Execute("select * from epostlista")

Medlem sedan jan. 20013 039 inlägg
#3

Hmm...jag är kanske ute och cycklar...men du skapar väl inte något recordset när du gör en Insert?

Det är kanske jag som är onödigt omständig, men jag hade först gjort en Select och kollat om uppgifterna fanns och sedan i If-satsen gjort Inserten förutsatt att användaren inte redan var reggad

Men det stämmre ju ändå inte överens direkt med felmeddelandet...hmm.
Nåja...om ingen annan har någon bättre ide kan du ju prova. Lycka till..

Medlem sedan juni 200032 967 inlägg
#4

nej då, bendro, inte cyklar du. :)

inget recordset skapas när du kör en insert-query.

vad är det du vill göra? egentligen?

Medlem sedan aug. 20002 272 inlägg
#5

Det tackar vi för...

Klantigt av mej att inte upptäcka det.. :)

Medlem sedan aug. 20002 272 inlägg
#6

Nyfiken @nders.. :q :)

Har ju en icq & epostlista...

Om någon skriver i typ samma namn eller epostadress så ska det inte skrivas in någon post i db:n... utan meddela personen om att de uppgifterna finns...

Jag tvivlar inte en sekund på att detta säkerligen går att ordna på ett mkt bättre sätt men det blev "bara" såhär när jag satt och skrev det...

Om Ni har bättre förslag så är jag redo.. :)

Medlem sedan dec. 19996 721 inlägg
#7

Du får göra en utsökning med SELECT, efter det önskade användarnamnet, först, och med den sökningen....

If NOT objRS.EOF Then

Medlem sedan aug. 20002 272 inlägg
#8

Fixade det såhär....

<% 
    '###Här deklareras kopplingsvariablerna###
    Dim Conn, strSQL, strFornamn, strEfternamn, strUIN, strEpost, strOrt, strPassw, objRS

    strFornamn = Request.Form("fornamn")
    strEfternamn = Request.Form("efternamn")
    strUIN = Request.Form("icq")
    strEpost = Request.Form("epost")
    strOrt = Request.Form("ort")
    strPassw = Request.Form("passw")

    '###Här skapas databaskopplingen###
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=epostkatalog.mdb"

    Set objRS = Conn.Execute(" SELECT * FROM epostlista WHERE fld_icq LIKE '" & strUIN & "' OR fld_epost = '" &  strEpost & "' OR fld_passw = '" &  strPassw & "' ")

    If NOT objRS.EOF Then
    Response.Write " <br><br><br><table width=""300"" align=""center""><tr><td>Någon av dina ifyllda uppgifter finns redan i vår databas!<br>Har du redan skrivit in dig en gång så klickar du <a href=""confirm_update.asp"">här</a>!</td></tr></table>"
    Else

    '###Här anges hur/vart informationen ska hanteras###
    strSQL = " INSERT INTO epostlista (fld_fornamn, fld_efternamn, fld_icq, fld_epost, fld_ort, fld_passw) "
    strSQL = strSQL & " VALUES ( '" & strFornamn & "', '" & strEfternamn & "', '" & strUIN & "', '" & strEpost & "', '" & strOrt & "', '" & strPassw & "')"
    Conn.Execute(strSQL)

    Response.Write " KLART! "
    End If

    '###Stänger databaskopplingen###
    objRS.Close
    Set objRS = Nothing

    Conn.Close
    Set Conn = Nothing
%>
Medlem sedan dec. 19996 721 inlägg
#9

Precis så ja. Bra!

263 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)