Absolutepage

Estoy realizando una aplicación ASP donde quiero paginar los resultados, quiero decir mostrar una página con 15 registros y poner botones para ir adelante o atrás. He utilizado ejemplos de algunas páginas web, pero en todas pone rs.absolutepage=variableentera. Pero me da el siguiente error
Error de Microsoft VBScript en tiempo de ejecución error '800a01b6'
El objeto no acepta esta propiedad o método: 'record'
Y no se a que es debido.
1

1 Respuesta

43.350 pts.
En primer lugar quiero decirte que lo de la paginación es un asunto que siempre trae de cabeza. Te lo digo porque he intentado utilizar los métodos de ADO (AbsolutePage, PageSize, etc) y siempre he encontrado problemas...
Yo te recomiendo una solución más sencilla (primitiva si se quiere), pero con un 100% de efectividad. Aquí tienes el código:
SentenciaSQL = "SQL"
Set RS = "EjecutaConsulta(SentenciaSQL)"
If Not (RS.BOF And RS.EOF) Then
TotalRegistros = RS.RecordCount
RS.MoveFirst
RegMostrados = 0
NumRegSalto = (Pagina - 1) * MAX_Registros
If (NumRegSalto) >= TotalRegistros Then
NumRegSalto = TotalRegistros - MAX_Registros
End If
Max_Pag = Fix(TotalRegistros / MAX_Registros) - 1
If (TotalRegistros Mod MAX_Registros <> 0) Then
Max_Pag = Max_Pag + 1
End If
Max_Pag = Max_Pag + 1
RS.Move NumRegSalto
While Not (RS.EOF) And (RegMostrados < MAX_Registros)
"PintaRegistro"
RS.MoveNext
RegMostrados = RegMostrados + 1
Wend
Else
Error -> RS VACIO!
End If
Por supuersto las cosas que están entre comillas las tienes que definir tu. Tu SQL, la función quela ejecuta y te devuelve un recordset y la que pinta el registro... El resto es sencillo... A esta función le pasas : Página (numero de página que quieres ver), Max_Registros (registros por página) y de ella puedes sacar TotalRegistros y MaxPag (para poder poner aquello de "página por de y" o el total de registros encontrados)...
Hola neocairo,
No me funciona pues el rs.recordcount siempre me devuelve -1. Yo utilizo una BD Informix. He creado el recorset de la siguiente manera:
SQLTXT="SELECT * FROM clientes"
set rs=CreateObject("ADODB.Recordset")
rs.Cursortype=adOpenstatic
rs.Open SQLtxt,"DSN=Campanyes"
Pero cuando realizo un rs.recordcount me devuelve valor -1 o un pagecount igual -1.
¿A qué es debido?
Saludos
Daniel
Este tipo de cosas son culpa de ADO... verás, no todas las propiedades de los objetos de ADO están soportadas por todos los controladores de Bases dde Datos... Lo único que puedes hacer es contar el número de registros "a mano"
TotalRegistros = 0
While Not(RS.EOF)
TotalRegistros = TotalRegistros + 1
Rs. MoveNext
Wend
Rs. MoveFirst
La verdad es que es una solución muy poco óptima... pero no veo otra solución posible.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas