DiDjoMedlem sedan nov. 2002544 inlägg Jag får detta meddelande.
ADODB.Field error '80020009'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/!egna/index.asp, line 0
Och den visar allt fram tills denna kod så den måste vara felet!
<%Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas")
Set rs = Server.CreateObject("ADODB.Recordset")
Säkert Felet!--->Addera = "SELECT * FROM didjo"
rs.Open Addera, Connect, 3, 3
%>
LarsGMedlem sedan dec. 200012 464 inlägg Det är inte där det är fel, lägg till en kontroll efter open
rs.Open Addera, Connect, 3, 3
if not rs.eof then
' all din kod här
end if
SebbeMedlem sedan jan. 20032 285 inlägg Kan du visa lite mer av koden? (Under det du har skrivit nu)
DiDjoMedlem sedan nov. 2002544 inlägg Det ända jag vill göra är att få ut det som står i kolumnen medlemmar i tabellen didjo! Jag har skrivit <%=rs("medlemmar")%> det är det ända och sne har jag stängt rs och connect!
SebbeMedlem sedan jan. 20032 285 inlägg Då är det bara att använda det som LarsG skrev. (Vilket iofs är en självklarhet ;))
DiDjoMedlem sedan nov. 2002544 inlägg Hej! Ledsen att jag inte svarat! Har ny dator och var lite problem med den! Men nu fungerar allt! Så här blir felet nu:
error '80020009'
Exception occurred.
/!egna/loggain.asp, line 53
Här e koden:
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("blablabla något här... .mdb")
Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM didjo"
rs1.Open Addera, Connect, 3, 3
53-->rs1("inlogg") = rs1("inlogg") +1
response.redirect("start.asp")
Tabelen heter Didjo och kolumnen inlogg men jag vet inte om man öppnar databasen så där!
trexterMedlem sedan mars 20021 889 inlägg Du kan inte göra så med RecordSets, i alla fall inte med den uppbyggnaden du har. Om du vill ändra på ett fält i databsen gör du det lättast med ett UPDATE-statement. Vill du lägga det i en variabel, så:
var = RecSet("abc") + 1
:)
DiDjoMedlem sedan nov. 2002544 inlägg hmmm hur lägger jag in den i min kod? Tar bort rs1("inlogg") lr? Men kan man ändra databas kopplingen eller?
trexterMedlem sedan mars 20021 889 inlägg Databaskopplingen har inte riktigt med saken att göra.
Om du vill plussa ett fält med ett skriver du en SQL-fråga som du sedan kör.
strSQL = "update t set f = f + 1 where -vad du vill-"
Connect.Execute strSQL,,128
:)
DiDjoMedlem sedan nov. 2002544 inlägg oki! Jag har testat dit första förslag:
var = RecSet("abc") + 1
Det fungerade inte! Den stannade kvar på noll i databasen! Jag ska prova det andra nu!
solbulleMedlem sedan mars 20015 287 inlägg Är det meningen att du ska uppdatera alla poster med 1? Annars måste du ha ett vilkor i din sql-fråga,
Addera = "SELECT * FROM didjo where ..... "
Men kör på trexter sista förslag, med where...
DiDjo skrev:
Hej! Ledsen att jag inte svarat! Har ny dator och var lite problem med den! Men nu fungerar allt! Så här blir felet nu:
error '80020009'
Exception occurred.
/!egna/loggain.asp, line 53
Här e koden:
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("blablabla något här... .mdb")
Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM didjo"
rs1.Open Addera, Connect, 3, 3
53-->rs1("inlogg") = rs1("inlogg") +1
response.redirect("start.asp")
Tabelen heter Didjo och kolumnen inlogg men jag vet inte om man öppnar databasen så där!
heter tabellen Didjo? men i koden har du skrivit didjo, stora och små bokstäver.. kanske iof inte har nån ebtydelse.. men men kanske det..
GimboMedlem sedan dec. 20001 626 inlägg sätt in on error resume next så slipper du problemet med BOF och EOF :)
crisse6Medlem sedan dec. 20002 526 inlägg Men nu vill vi losa problemet Gimbo! :)
Haller med solbulle och trexter, kor en san update...
pirajanMedlem sedan apr. 2001246 inlägg Kör en enkel SQL-sats som trexter föreslår:
<%
SQL = "Update tabell Set inlogg = inlogg + 1 Where ..."
Connect.Execute(SQL)
%>
Engine^Medlem sedan dec. 20003 887 inlägg Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Provider = "Microsoft.Jet.OleDB.4.0" [blue]'<--- bättre![/blue]
Connect.DataSource = Server.MapPath("/[i]sökväg[/i]/[i]dindatabas[/i].mdb")
Connect.Open
Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM didjo"
Set rs1 = Connect.Execute Addera, , 1
If Not rs1.EOF Then
[blue]'Uppdatera alla rader i kolumnen inlogg...[/blue]
Connect.Execute "UPDATE didjo SET inlogg = inlogg + 1;", , 128
End If
Response.Redirect("start.asp")
DiDjoMedlem sedan nov. 2002544 inlägg fick detta fel då!
Microsoft VBScript compilation error '800a0401'
Expected end of statement
/!egna/loggain.asp, line 55
Set rs1 = Conn.Execute Addera, , 1
-----------------------^
Men jag får inte felet med BOF or EOF längre även om man inte tar med if satsen!
DiDjoMedlem sedan nov. 2002544 inlägg
pirajan skrev:
Kör en enkel SQL-sats som trexter föreslår:
<%
SQL = "Update tabell Set inlogg = inlogg + 1 Where ..."
Connect.Execute(SQL)
%>
Jo men jag har ingen ID i den tabellen och inget att jämföra med! Det jag vill är att kunna se hur många medlemmar som har reggat sig och hur många inloggningar som har hänt! Finns bara två kolumner som heter "inlogg" och "med"
DiDjoMedlem sedan nov. 2002544 inlägg Jag skickar med hela koden! Så ser ni vad jag vill göra!
<%
namn = Request.Form("anv")
losen = Request.Form("los")
humor = Request.Form("humor")
if Len(losen) <1 OR Len(namn) <1 then
session("felet") = "Du måste skriva in både användarnamn och lösenord"
Response.Redirect("index.asp")
end if
Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("/db/en databas")";"
SQL = "SELECT * FROM anv WHERE anv = '"&namn&"' AND Losen = '"&losen&"' "
set RS = Connection.Execute(SQL)
IF NOT RS.EOF then
session("inloggad") = "ja"
Session("fel") = ""
session("anv") = rs("anv")
session("user") = rs("anv")
session("vaktare") = rs("vaktare")
if rs("tid")&"" = "" then
session("tid")=0
else
session("tid")=rs("tid")
end if
Response.Cookies("didjocom")("anv") = rs("anv")
Response.Cookies("didjocom").Expires = "December 10, 2010"
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("/db/en databas")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv WHERE anv = '"&namn&"' AND Losen = '"&losen&"' "
rs.Open Addera, Connect, 3, 3
rs("online") = "1"
rs("inlogg")= rs("inlogg") +1
rs("senaste")= now
rs("loggain")= now
rs("humor")= Request.Form("humor")
rs.update
set Connect = Server.CreateObject("ADODB.Connection")
Connect.Provider = "Microsoft.Jet.OleDB.4.0"
Connect.DataSource = Server.MapPath("/db/en databas")
Connect.Open
Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM didjo"
Set rs1 = Connect.Execute Addera, , 1
Connect.Execute "UPDATE didjo SET inloggn = inloggn + 1;", , 128
Response.Redirect("start.asp")
Else
Session("fel") = "Du skrev fel lösenord eller användarnamn!"
Response.Redirect("index.asp")
end if
RS.close
rs1.close
Connection.Close
connect.Close
%>
Döpte om inlogg till inloggn eftersom jag hade en annan i en annan tabell som hette lika! Men samma fel iaf
solbulleMedlem sedan mars 20015 287 inlägg Tycker spontant att det där ser lite skumt ut. Först öppnar du databasen... sen öppnar du databasen... ?
Saknar du inte denna rad i den första öppningen:
Set rs = Server.CreateObject("ADODB.Recordset")