Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tuhajo

Paginação no relatório

Recommended Posts

Boa Tarde, tenho o seguinte código:

sql = "SELECT * FROM TABELA"
Set RsPlanilha = conBanco.Execute(PlanilhaSQL)

if (not RsPlanilha.eof) then

   RsPlanilha.PageSize = 50

   'Definimos em qual pagina o visitante está
   if Request.QueryString("pagina") = "" then 
       intpagina = 1
   elseif cint(Request.QueryString("pagina")) < 1 then
       intpagina = 1
   elseif cint(Request.QueryString("pagina")) > RsPlanilha.PageCount then  
       intpagina = RsPlanilha.PageCount
   else
       intpagina = Request.QueryString("pagina")
   end if

end if

RsPlanilha.AbsolutePage = intpagina 
intrec = 0

While ((intrec < RsPlanilha.PageSize) and (not RsPlanilha.eof))

      RESPONSE.WRITE RsPlanilha("NOME")

      RsPlanilha.MoveNext

      intrec = intrec + 1

Wend

<tr>
   <td bgcolor="#FCE5E5"></td>
   <td align="center">
   <% 
   if intpagina > 1 then 
   %> 
   <a href="planilha.asp?pagina=<%=intpagina - 1%>">Anterior</a> 
   <% 
   end if
   if StrComp(intpagina,RsPlanilha.PageCount)<>0 then   
   %>
   <a href="planilha.asp?pagina=<%=intpagina + 1%>">Próximo</a>  
   <%
   end if
   RsPlanilha.close
   Set RsPlanilha = Nothing
   %>
   </td>
   <td bgcolor="#FCE5E5"></td>
</tr>

 

Ele está trazendo a primeira página com os 50 registros mas qdo clico em "Próxima" ele vai pra página planilha mas dá o erro:

Microsoft VBScript runtime error '800a01a8'

Object required: 'RsPlanilha'

 

Como faço para trazer o restante dos registros na próxima página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso geralmente é porque você já tentou fechar ou definir nothing a um objeto que não foi definido. exemplo:

 

<% 
   set conn = CreateObject("ADODB.Connection") 
   conn.open sua_connection_string
   ' ... 
   objConn.close 
   set objConn = nothing %>

 

Outra causa comum é usar a palavra SET para criar uma string, na maioria das vezes uma instrução SQL, por exemplo,

 

SET SQL = "SELECT * FROM tabela WHERE cod="1""

 

Outra causa possível é usar um nome de objeto reservada como nome de variável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente tinha no meu código o set objConn = nothing . Eu tirei, parou de dar erro mas agora a página vem em branco ao invés de trazer o restante dos registros na página 2.

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem alguns exemplos ótimo de páginação no fórum, e você pode comparar a lógica, olha este

 

code de PAGINAÇÃO que é muito bom simples e bem funcional.

 

espero ajudar de alguma maneira

 

 

 

 

<%
' Definindo o caminho do banco de dados
caminho = "bds/cadastro.mdb"

' Fazendo a conexão com o banco de dados (paginacao.mdb)
set objconn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(caminho)
objconn.Open DSN

' String SQL para consulta
SQL = "select * from cadastro order by cliente"

' Abrindo o registro
SET objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open SQL,objconn,3

' Se não encontrar nada escreve a mensagem
' Senão lista os registros
If objRS.EOF Then
Response.Write("Nenhum registro foi encontrado")
Else
' Definindo o número de registros por página
objRS.PageSize = 10

' Recupera o valor da variável pagina
pagina = Request.QueryString("pagina")

' Se a variável pagina for vazio, indica que a página sera a primeira
' Senão a variável pagina recebe o valor da página corrente, definida acima
If pagina = "" Then
objRS.AbsolutePage = 1
pagina = 1
Else
objRS.AbsolutePage = pagina
End If
%>
<%
' Imprime o número de registros, o total de páginas e a página atual
Response.Write("<table><tr><td><FONT FACE=Verdana SIZE=1 COLOR=#000000><B>Foram encontrados" & objRS.RecordCount & " registros" & vbcrlf )
Response.Write("<br>Mostrando página <b>" & pagina & "</b> de <b>" & objRS.PageCount & "" & vbcrlf )
Response.Write("<br><FONT FACE=Verdana SIZE=1 COLOR=#000000><B>Busca Avançada <a href='#' onClick=javascript:window.open('../busca_avc.asp','','width=200,height=50,scrollbars=no, resizable=no,left=00,top=0');>aqui</a></B></FONT></td></tr></table>")
%>

<%
' Criando a barra de navegação
' Se a variável pagina for maior que 1 então imprime o botão Anterior com link
' Senão imprime sem link
If CInt(pagina) > 1 Then
Response.Write("<center><FONT FACE=Verdana SIZE=1 COLOR=#000000><B><a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & pagina-1 & "'>Anterior</a> ")
Else
Response.Write("<center><FONT FACE=Verdana SIZE=1 COLOR=#000000><B>Anterior")
End If

' Lista todas as páginas encontradas
if objRs.PageCount < 11 then
For i = 1 To objRS.PageCount
  response.write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & i & "'>" & i & "</a> ")
Next
end if

if objRs.PageCount > 10 then
    inicio=pagina
    fim=pagina + 9
    tot = pagina + 9
    if tot > ObjRS.PageCount then
      inicio = pagina-((pagina+9)-ObjRs.PageCount)
      fim = inicio+9
    end if
    for i = inicio to fim
        response.write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & i & "'>" & i & "</a> ")
    next
end if


' Se a variável pagina for menor que o total de páginas então imprime o botão Próxima com link
' Senão imprime sem link
If CInt(pagina) < objRS.PageCount Then
Response.Write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & pagina+1 & "'>Próxima</a></B></FONT></center>")
Else
Response.Write("Próxima</B></FONT></center>")
End If
End If
%>




<%While Not objRS.EOF AND cont < objRS.PageSize%>
<tr bgcolor="#0099CC" bordercolor="0">
  <td height="7" width="110" align="left"><font size="1" face="Verdana"><b><%=objRS("cliente")%></b></font></td>
  <td height="7" width="110" align="center"><font size="1" face="Verdana"><b><%=objRS("fone")%></b></font></td>
  <td height="7" width="83" align="center"><font size="1" face="Verdana"><b><%=objRS("endereco")%></b></font></td>
  <td height="7" width="70" align="center"><font size="1" face="Verdana"><b><%=objRS("numero")%></b></font></td>
  <td height="7" width="107" align="center"><font size="1" face="Verdana"><b><%=objRS("bairro")%></b></font></td>
  <td height="7" width="55" align="center">
  <a href="../action_altera.asp?id=<%=objRS("id")%>" OnClick="return confirm('Deseja Realmente Alterar ?')">
  <img src="imagens/edit.gif" width="16" height="16" border="0" alt="Clic aqui para Alterar.">
  </a>  
</td>
<%
cont = cont + 1
objRS.MoveNext
Wend
%>
</tr>
</table>
<%
' Fecha e destroi os objetos RS e conn
objRS.Close : objconn.Close
Set RS = Nothing : Set objconn = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.