Ayuda para paginar resultados de busqueda

Lud
03 de Julio del 2005
Hola a todos.
Espero ayuda. Tengo un problema con la paginación resultados de una búsqueda.
Al Inicio la búsqueda y la paginación seon correctos,
pero al dar click en pagina "dos" o "siguiente"
el resultado que me muestra ya no es de la búsqueda
sino de toda la base de datos.

AQUI VA EL CODIGO (YA NI SIQUIERA SE DE DONDE LO SUSTRAJE)
AGRADECERE LA CORRECIÓN DEL MISMO O UN NUEVO CODIGO,
YA QUE NO TENGO MUCHA EXPERIENCIA NI CONOCIMIENTO EN EL TEMA.
LA PAGINA TEDRIA QUE BUSCAR EL IDDOCUMENTO (QUE TIENE DUPLICADOS) INGRESADO
EN UN FORMULARIO Y MOSTRAR LOS ENLANCES A CADA IDFOJA CORRESPONDIENTE.

MUCHA GRACIAS!!!

<!-- #include file="adovbs.inc" -->
<html>

<!-- recibimos del formulario la dirección del movimiento y
lo guardamos en una variable de sesión para este usuario -->

<%xx=request.form("direccion")
if xx = "Atras" then
session("pagina")=session("pagina")-1

if session("pagina")< 1 then
session("pagina")=1 'evitamos el error por reload
end if

else
if xx="Adelante" then
session("pagina")=session("pagina")+1
else
session("pagina")=1 'primera pasada
end if
end if%>

<head>
<title>Paginación de registros</title>
</head>


<!-- Montamos la sentencia SQL con los campos a seleccionar -->


<%
cclave=request.form("clave")
SQLtxt = "SELECT IdDocumento, IdFoja, Foja FROM Documentos_con_fojas where IdDocumento like '%"&cclave&"%'"
%>


<body>

<!-- Creamos el objeto recordset y le asignamos un tipo de cursor
que nos permita movernos por el y asignarle tamaños de pagina -->

<%set rs = CreateObject("ADODB.Recordset")
rs.CursorType = adOpenstatic %>

<!-- abrimos el recordset con la sentencia SQL sobre nuestra base
ODBC y le asignamos el tamaño de página -->


<%rs.Open SQLtxt, "DSN=Mi_base"
rs.pagesize=1



if session("pagina")>rs.pagecount then
session("pagina")=rs.pagecount 'evitamos el error de reload
end if%>

<!-- situamos el cursor en el inicio de la pagina a mostrar y
calculamos los valores de inicio y fin para mostrarlos en
las cabeceras -->


<%rs.absolutepage=session("pagina")
inicio=1+(session("pagina")-1)*rs.pagesize
fin=inicio+9
if fin > rs.recordcount then
fin =rs.recordcount
end if
%>
<center><h3>Paginación de registros</h3></center>
<table border="0" width="100%" bgcolor="#C0C0C0">
<tr>
<td width="50%" align="center">Registros <font color="#FF0000"><%=inicio%> </font>
al <font color="#FF0000"><%=fin%></font> de un total de
<font color="#FF0000"><%=rs.recordcount%></font></td>
<td width="50%" align="center">Página <font color="#FF0000"><%=session("pagina")%>
</font> de <font color="#FF0000"><%=rs.pagecount%></font></td>
</tr>
</table>
<br>
<table BORDER="1" CELLSPACING="0" BORDERCOLOR="#000000" CELLPADDING="2" width="100%">


<!-- montamos el bucle para mostrar los registros -->

'<%

contador=0
Do While contador < rs.pagesize and NOT rs.EOF%>

<%
'For col = 0 To Rs.Fields.Count-2
'Response.Write Rs.Fields(col).Value & vbNewLine
'Next
'desplegar imagen
'response.write("<br>")
'set foto=Rs("Foja")
'response.write("<IMG SRC=" & foto & ">" )
%>




<tr>
<td><%= rs("IdDocumento")%></td>
<td><%= rs("IdFoja")%></td>
</tr>

<% rs.MoveNext
contador=contador+1
Loop
%>
</table>
<div align="center">
<center>

<!-- mostramos los botones de adelante y atras segun proceda -->

<table border="0" width="38%" height="5">
<tr><%if session("pagina")<> 1 then %>
<td width="50%" height="1" align="center">
<form method="POST" action="paginando.asp">
<p><input type="submit" value="Atras" name="direccion"></p>
</form>
</td><%end if%>
<%if session("pagina")< rs.pagecount then%>
<td width="50%" height="1" align="center">
<form method="POST" name="paginando.asp">
<p><input type="submit" value="Adelante" name="direccion"></p>
</form>
</td><%end if%>
</tr>
</table>
</center>
</div>


<!-- cerramos el recordset -->

<%rs.Close%>

</body>
</html>


WillyNec
03 de Julio del 2005
Tuve un problema parecido, la primera consulta, me la mostraba correcta, cuando iba a otra página me mostraba como si hubiese hecho un Select * de mi tablao o ERROR.
El error era que leía un formulario q ya no existia, el texto solo funcionaba para la primera leida de la pagina, lo que hice fue pasar la consulta a una pagina de validación donde capturaba los datos del Form de Busqueda y pasaba el SQL en una variable de Session no se si sera lo mas adecuado, pero aún sigo buscando otra solución.