Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Consultas Totales, Parciales Y Paginacion

Estas en el tema de Consultas Totales, Parciales Y Paginacion en el foro de Bases de Datos General en Foros del Web. Hello a todos, bueno estoy aki porque ya no sé hacia donde puedo dirigirme pa que alguna alma caritativa me heche una mano. Mi problema ...
  #1 (permalink)  
Antiguo 02/05/2004, 16:02
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Consultas Totales, Parciales Y Paginacion

Hello a todos, bueno estoy aki porque ya no sé hacia donde puedo dirigirme pa que alguna alma caritativa me heche una mano.
Mi problema es el siguiente e intentaré ser lo mas claro posible.
Tengo un sitio web en el cual hay una página que se llama "Nuestros socios.htm". En esa página hay dos links 1) para darte de alta, baja, borrarte, etc... 2)para consultar datos sobre socios, poblacion, moto etc...
Clicas sobre el link para consultar datos y sale un formulario de búsqueda. Este formulario enlaza con una base de datos y funciona a las mil maravillas si, si, MIENTRAS NO INTERCALO INSTRUCCIONES PARA PAGINAR LOS DATOS. Lo que quiero sencillamente, es que, si un usuario clica en buscar, sin poner ningún dato de búsqueda, no salgan todos los registros de golpe, porque sería un disparate (mas de 500 registros .aaa). Lo que quiero es paginarlos para que se vean de 25 en 25. Pero pero la putada es que mientras no existía el código de páginación todo iba bien. Busque le código en asptutor para paginar y lo mezclé con éste. Casi casi funciona, pero, porque siempre hay un pero, cuando clicas en busccar salen los 25 primeros registros de la tabla, y cuando clicas en siguiente página, pues sale el maldito mensaje: NO SE ENCONTRÓ EL ELEMENTO EN LA COLECCIÓN QUE CORRESPONDE CON EL NOMBRE O EL ORDINAL PEDIDO....ME TRAE FRITO ESTO.
¿Alguien experto en asp + sql me puede ayudar? Ahi va el código.
Muchísimas gracias. Un saludo. Fran.

CÓDIGO : (parece que al pasar a los 25 registros siguientes NO PUEDE FILTRAR LOS RESULTADOS...MIRAR EL CÓDIGO DONDE ESTA EL PROCEDIMIENTO SUB FILTRO..AHI ES DONDE ESTÁ LA PEGA)

<!-- #INCLUDE File="Bases de datos/ADOVBS.inc" -->

<% IF (Request.Form ("Pagina") = "Página Siguiente") THEN
Session("Pagina")= Session("Pagina") + 1
ELSE IF (Request.Form ("Pagina") = "Página Anterior") THEN
Session ("Pagina")= Session ("Pagina") - 1
ELSE Session ("Pagina")=1
end if
end if
SQLtxt = "SELECT Apellidos, Nombre, Población, Megaescúter, Socio FROM Socios"
%>

<% SUB Rellenar %>
<%IF rs.Eof then%>
<h3>¡No se ha encontrado ningún dato que concuerde con su búsqueda!</h3>
<%END IF%>
<table border="0" width="605" bgcolor="#C0C0C0">

<tr bgcolor="0000bc">
<td width="50%" align="center"><font color="#FFFFFF">Registros<b> <%=inicio%></b> al <b><%=fin%></b> de un total de <b><%=rs.recordcount%></b></font></td>
<td width="50%" align="center"><font color="#FFFFFF">Página</font> <font color="#FFFFFF"><b><%=session("pagina")%></b> </font> <font color="#FFFFFF">de</font> <font color="#FFFFFF"><b><%=rs.pagecount%></b></font></td>
</tr>
</table>
<br>
<table CELLSPACING="1" CELLPADDING="2" width="605">
<tr bgcolor="6f6fff">
<td align="center"><b><font color="#FFFFFF">Apellidos</font></b></td>
<td align="center"><font color="#FFFFFF"><b>Nombre</b></font></td>
<td align="center"><font color="#FFFFFF"><b>Población</b></font></td>
<td algin="center"> <div align="center"><font color="#FFFFFF"><b>Megaescúter</b></font></div></td>
<td align="center"><font color="#FFFFFF"><b>Socio</b></font></td>
</tr>
<!-- montamos el bucle para mostrar los registros -->
<% contador =0

Do While contador < rs.pagesize and NOT rs.Eof %>
<tr bgcolor="f5f5f9">
<td align="center"><%=rs("Apellidos")%></td>
<td align="center"><%=rs("Nombre")%></td>
<td align="center"><%=rs("Población")%></td>
<td align="center"><%=rs("Megaescúter")%></td>
<td align="center"><%=rs("Socio")%></td>
</tr>

<% rs.MoveNext
contador =contador+1
LOOP %>
</TABLE>
<br>
<FORM METHOD="POST" action="consultas.asp">
<% IF Session ("Pagina") > 1 THEN %>
<INPUT NAME="Pagina" TYPE="submit" CLASS="boton" VALUE="Página Anterior">
<% END IF
IF Session ("Pagina") < rs.PageCount THEN %>
<INPUT NAME="Pagina" TYPE="submit" CLASS="boton" VALUE="Página Siguiente">
<% END IF %>
</FORM>
</td>
</tr>
</table>

<BR><div align="center"> <table width="180" cellpadding="2" cellspacing="0">
<td align="center" class="tablacentral" > <A HREF="consultas.asp"> Realizar
otra consulta </A> </td>
</table></div>
<% END SUB

SUB Filtro
sql=""
conAND=False
FOR EACH Valores IN Request.Form
IF Request.Form(Valores) <> "" THEN
IF conAND THEN
sql= sql & " AND " & Valores & "= '"
sql= sql & Request.Form(Valores) & "'"

ELSE
sql= sql & Valores & "= '"
sql= sql & Request.Form(Valores) & "'"

conAND= True

END IF
END IF

NEXT
sql = Lcase(sql)
rs.Filter = sql
END SUB

IF (Request.Form <> "") THEN

Set rs = Server.CreateObject ("ADODB.RecordSet")
rs.CursorType = adOpenstatic
rs.Open SQLtxt, "DSN=Bases de datos"
rs.pagesize=25

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

rs.absolutepage=session("pagina")
inicio=1+(session("pagina")-1)*rs.pagesize
fin=inicio+24
if fin > rs.recordcount then
fin =rs.recordcount
end if

FILTRO()
RELLENAR()
rs.Close

ELSE %>
<table width="605" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>&nbsp;</td>
<td><table width="595" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="367" height="20">&nbsp;</td>
<td width="32"><img src="images/titsocios.gif" width="32" height="20"></td>
<td width="170" bgcolor="0000bc"><font color="#FFFF00" size="2"><strong>Buscando
a... </strong></font></td>
<td width="26" bgcolor="0000bc">&nbsp;</td>
</tr>
</table></td>
</tr>
<tr>
<td width="18">&nbsp;</td>
<td class="subratitulo">&nbsp;</td>
</tr>
<tr>
<td height="44">&nbsp;</td>
<td valign="top"><table width="100%" height="31" border="0" cellpadding="2" cellspacing="0" class="tablacentral">
<tr>
<td><font size="1">&iquest; Quieres buscar a un socio en concreto,
ver tu ficha (en preparaci&oacute;n) o simplemente ver que modelos
de megas se utilizan m&aacute;s? Desde nuestro buscador podr&aacute;s
hacerlo. No olvides que cada vez que realices una consulta,
debes poner el nombre exacto (ej. Suzuki Burgman 250 y no Burgman
250) sino dar&aacute; error.</font></td>
</tr>
</table></td>
</tr>
<tr>
<td>&nbsp;</td>
<td >&nbsp;</td>
</tr>
<tr>
<td height="57" >&nbsp;</td>
<td align="center" > <form method="post" action="consultas.asp" >
<table width="86%" border="0" align="center" cellpadding="1" cellspacing="0">
<tr bgcolor="0000bc">
<td colspan="4"><font color="#FFFFFF" size="2"><strong>&nbsp;Buscador
de megascooteros</strong></font></td>
</tr>
<tr bgcolor="6f6fff">
<td width="25%"><font color="#FFFFFF"><strong>&nbsp;Apellidos</strong></font></td>
<td width="22%"> <input name="Apellidos" type="text" ></td>
<td width="26%"><font color="#FFFFFF"><strong>Nombre</strong></font></td>
<td width="27%"> <input name="Nombre" type="text" id="Nombre"></td>
</tr>
<tr bgcolor="6f6fff">
<td><font color="#FFFFFF"><strong>&nbsp;Provincia</strong></font></td>
<td> <input name="Población" type="text" id="Población"></td>
<td><font color="#FFFFFF">&nbsp;</font></td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="ccccff">
<td><strong>&nbsp;Megasc&uacute;ter</strong></td>
<td><font color="9dccff">
<input name="Megaescúter" type="text" id="Megaescúter">
</font></td>
<td><font color="#FFFFFF">&nbsp;</font></td>
<td> <input type="submit" class="boton" value="Buscar">
</td>
</tr>
</table>
</form>
<% END IF %>
<p class="fintabla">&nbsp;</p></tr>
</table></td>
</tr>
</table>

</body>
</html>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:38.