Ayuda para paginar resultados de busqueda

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

AQUI VA EL CODIGO (YA NI SIQUIERA SE DE DONDE LO SUSTRAJE)
AGRADECERE LA CORRECIN 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 direccin del movimiento y
lo guardamos en una variable de sesin 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>Paginacin 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 tamaos 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 tamao de pgina -->


<%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>Paginacin 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">Pgina <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 pgina me mostraba como si hubiese hecho un Select * de mi tablao o ERROR.
El error era que lea 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 validacin 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 an sigo buscando otra solucin.