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

Consulta Y PaginaciÓn

Estas en el tema de Consulta Y PaginaciÓn en el foro de Bases de Datos General en Foros del Web. MU WENAS A TODOS, ¿QUÉ TAL? Bueno tengo un pequeño problema y espero que algún programador experto me lo pueda solucionar. Veamos. Tengo un formulario ...
  #1 (permalink)  
Antiguo 07/05/2004, 06:34
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 19 años, 11 meses
Puntos: 0
Consulta Y PaginaciÓn

MU WENAS A TODOS, ¿QUÉ TAL?

Bueno tengo un pequeño problema y espero que algún programador experto me lo pueda solucionar.
Veamos. Tengo un formulario de búsqueda para buscar tanto por nombre, apellidos, población, e-mail, moto. Cuando le das a buscar salen los 25 primeros registros paginados, tal y como lo indique (pagesize). Pero si quiero ver los 25 siguientes registros, o lo que queda de la consulta (por ej. si sólo hay 30 registros), pulsando el botón adelante, sencillamente no puedo. Me da este error:
"ADODB.Recordset (0x800A0CC1)
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.
/Sociostotal.asp, línea 91"

Ahí va el código...a ver si alguien ve algo que YO NO VEO. Gracias.
<!-- #include file="Bases de datos/ADOVBS.inc" -->
<% SUB Rellenar %>
<% IF rs.Eof then %>
<h3>¡No se ha econtrado ningün socio que concuerde con su búsqueda!</h3>
<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 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>E-mail</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"><font size="1"><b><%= rs("Apellidos")%></b></font></td>
<td align="center"><%= rs("Nombre")%></td>
<td align="center"><%= rs("Correo")%></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>
<table border="0" width="38%" height="5">
<tr><%if session("pagina")<> 1 then %>
<td width="50%" height="1" align="center">
<form method="POST" action="Sociostotal.asp">
<p>
<input name="direccion" type="submit" class="boton" value="Atrás">
</p>
</form>
</td><%end if%>
<%if session("pagina")< rs.pagecount then%>
<td width="50%" height="1" align="center">
<form method="POST" name="Sociostotal.asp">
<p>
<input name="direccion" type="submit" class="boton" value="Adelante">
</p>
</form>
</td><%end if%>
</tr>
</table>
</center>
</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
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


IF (Request.Form <> "") THEN
Set rs = CreateObject ("ADODB.RecordSet")
rs.CursorType = adOpenStatic
SQLtxt = "SELECT Apellidos, Nombre, Correo, Población, Megaescúter, Socio FROM Socios"
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%>
<%END IF %>

</body></html>
  #2 (permalink)  
Antiguo 07/05/2004, 14:01
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 5 meses
Puntos: 1
Esto está más relacionado con el foro de ASP.

Lo más probable es que algún nombre de campo esté mal en alguna parte donde haces referencia a ál queriendo leer. Por ejemplo una letra de más o un acento.
__________________
Ariel Avelar
  #3 (permalink)  
Antiguo 07/05/2004, 14:15
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 19 años, 11 meses
Puntos: 0
NO ME SOLUCIONA EL PROBLEMA

Gracias por contestar, pero, he comprobado UNO A UNO los campos de la tabla y están bien. El error no viene de ahi. Es como si al pasar a la página siguiente NO PUDIEDE FILTRAR NI PAGINAR..No entiendo..bufff.
De todas formas gracias
Un saludo.
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 07:37.