Eu estou com um problema de difícil resolução. Eu tenho uma página que exibe o histórico de login de toda vez que o usuário acessou o site. Com o passar do tempo, depois de inúmeros acessos a página vai ficando extendida, por isso eu tentei paginar ela de forma que ficasse mais organizada.
No momento em que fiz isso acabou aparecendo inúmeros erro.
O erro que aparece agora é este:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/login5/home.asp, line 42
Na linha 42 eu tenho isso:
Response.Write "<p class=FieldLabel>Histórico do usúario: " & rs("FirstName") & " " & rs("LastName") & " (" & rs("UserName") & ")</p>"
Eu já verifiquei o nome dos campos no DB e estão todos certos. Se quiserem verificar por via das dúvidas, neste link vc faz o download do DB.
Download do BD Acesso
Eu não compreendo aonde pode estar o erro que começou no momento em que eu fui tentar paginar os resultados. Vale lembrar que essa página se conecta ao DB dela através de um arquivo global asa que está no meu diretório raiz, também respondendo pelo meu site.
Se ajudar publicarei abaixo a página emq ue exibe o erro e também o código do global.asa.
Obrigado.
Página que tem o erro.
<%@ Language=VBScript %>
<%Response.Expires = 0%>
<%Response.Buffer = true%>
<!--#include file="verify_login.asp"-->
<!--#include file="header.asp"-->
<center>
<%
user = Session("member")
set rs_log = server.CreateObject ("ADODB.Recordset")
query = "SELECT * FROM User_logTime WHERE offline=True AND user_id=" & user & " ORDER BY id DESC"
rs_log.Open query, Application("connString"), 3
if not rs_log.eof then
set rs = server.CreateObject ("ADODB.Recordset")
RS.PageSize = 5
query = "SELECT * FROM Members WHERE id=" & user
rs.Open query, Application("connString"), 3, 3
IF RS.EOF then
Response.Write "nenhum registro encontrado"
Response.End
ELSE
IF Request.QueryString("pagina")="" then
intpagina=1
ELSE
IF cint(Request.QueryString("pagina"))<1 then
intpagina=1
ELSE
IF cint(Request.QueryString("pagina"))> RS.PageCount then
intpagina=RS.PageCount
ELSE
intpagina=Request.QueryString("pagina")
END IF
END IF
END IF
END IF
RS.AbsolutePage=intpagina
intrec=0
While intrec < RS.PageSize and not RS.EOF
Response.Write "<p class=FieldLabel>Histórico do usúario: " & rs("FirstName") & " " & rs("LastName") & " (" & rs("UserName") & ")</p>"
rs.Close
rs.Open "SELECT DISTINCT user_id FROM User_LogTime WHERE offline=False", Application("connString"), 3
online = rs.RecordCount
Response.Write "<table cellspacing=2 cellpadding=2 width=50% >"
Response.Write "<tr bgcolor=#333366>"
Response.Write "<td><font class=colltitle>Sessão N.º:</a></td>"
Response.Write "<td><font class=colltitle>Data e Hora do Login:</a></td>"
Response.Write "<td><font class=colltitle>Data e Hora do Logout:</a></td>"
Response.Write "<td><font class=colltitle>IP:</a></td>"
Response.Write "</tr>" & vbcrlf
RS.MoveNext
intrec=intrec+1
IF RS.EOF then
response.write " "
END IF
Wend
rs.Close
set rs = nothing
IF intpagina > 1 then
%>
<a href="home.asp?pagina=<%=intpagina-1%>">Anterior</a>
<%
END IF
IF strcomp(intpagina,RS.PageCount) <> 0 then
%>
<a href="home.asp?pagina=<%=intpagina + 1%>">Próxima</a>
<%
END IF
%>
<%
i = 1
while not rs_Log.EOF
if i mod 2 then
Response.Write "<tr class=defaultsmall>"
else
Response.Write "<tr class=defaultsmall bgcolor=#dedede>"
end if
Response.Write "<td>" & rs_Log("SID") & "</td>"
Response.Write "<td>" & rs_Log("Login_Time") & "</td>"
if rs_Log("Logout_Time") <> "" then
Response.Write "<td>" & rs_Log("Logout_Time") & "</td>"
else
Response.Write "<td>N/A</td>"
end if
Response.Write "<td>" & rs_Log("user_ip") & "</td>"
Response.Write "</tr>" & vbcrlf
i = i + 1
rs_Log.MoveNext
wend
Response.Write "</table>"
Response.Write "<p class=defaultsmall>" & online & " usúario(s) online.</p>"
else
Response.Write "<p class=FieldLabel>Este é seu primeiro acesso ao sistema.<br> Você ainda não tem histórico, faça o logout e logue-se novamente.</p>"
end if
rs_Log.Close
set rs_Log = nothing
%>
<a href='logout.asp' class=errmsg>Logout!</a>
</center>Arquivo Global.asa
<script language="VBScript" runat="server">
'Inicia as variaveis de aplicação
Sub Application_onStart()
' - - - -Conexao com o banco de dados - -- - -- - -- --- - - - - --
Application("Connection") = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\Domains\noticiaregional.com.br\db\noticias.mdb;"
Application("connString") = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Domains\noticiaregional.com.br\db\acesso.mdb"
End Sub
Sub Session_OnEnd
set conn = Server.CreateObject ("ADODB.Connection")
conn.Open Application("connString")
' Update the record when the user logout and write the logout time plus it sets the user as OFFLINE.
query = "UPDATE User_LogTime SET Logout_Time=#" & now() & "#, offline=True WHERE offline=False AND SID=" & Session.SessionID & " AND user_id=" & Session("member")
conn.Execute (query)
conn.Close
set conn = Nothing
End Sub
Sub Session_onStart()
Session.Timeout = 20
Session.LCID = 1046
End Sub
</script>











