Ver Mensaje Individual
  #9 (permalink)  
Antiguo 06/09/2006, 01:45
shaggybb
 
Fecha de Ingreso: enero-2004
Mensajes: 15
Antigüedad: 20 años, 3 meses
Puntos: 1
Hola mlegui21,

He probado la SQL que paso GatorV. Realmente no te sirve de gran ayuda, ya que, recoges los 10 primeros registro de la consulta que haces de los 50 primeros.

Código:
SELECT  * FROM (
     SELECT TOP 10 * FROM (
           SELECT TOP 50 * FROM users
     )
)
Si utilizas este código podrás paginar todo lo que quieras, con MS Access, claro está.

Código:
     SELECT TOP $NUMERO_REGISTROS_A_MOSTRAR * $FROM NOMBRE_TABLA WHERE $CAMPO_PK id not in (
           SELECT TOP $REGISTRO_INICIAL $CAMPO_PK FROM animales
     )


Para sacar $REGISTRO_INICIAL tienes que hacer los siguiente:
1. Dividir count(*) entre $NUMERO_REGISTROS_A_MOSTRAR, esto te dará el numero de paginas que tendrá tu consulta.
2. Para hacer la paginación solo tienes que enviar el numero de pagina al que quieres acceder y multiplicarlo por $NUMERO_REGISTROS_A_MOSTRAR.

Con este proceso obtendrás $REGISTRO_INICIAL.

Ejemplo:
count(*) = 200
$NUMERO_REGISTROS_A_MOSTRAR = 10
$NUMERO_PAGINAS = count(*) / $NUMERO_REGISTROS_A_MOSTRAR => 20
$PAGINA_ACTUAL = 12
$REGISTRO_INICIAL = $PAGINA_ACTUAL * $NUMERO_PAGINAS => 120

Ejemplo:

SELECT TOP 10 * FROM animales WHERE id not in (
SELECT TOP 120 id FROM animales
)


De esta forma excluyes los 120 registros iniciales ya visitados y recoges los 10 siguientes que todavía están por visitar.