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

paginar con access

Estas en el tema de paginar con access en el foro de Bases de Datos General en Foros del Web. tengo una tabla con id y quiero tomar de 9 registris por pagina me gustaria saber para access xD, como se puede hacer...
  #1 (permalink)  
Antiguo 27/09/2006, 20:23
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
paginar con access

tengo una tabla con id y quiero tomar de 9 registris por pagina

me gustaria saber para access xD, como se puede hacer
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #2 (permalink)  
Antiguo 30/09/2006, 19:51
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
bueno de alguna forma tambien sirve top
pero yo ocupe esto
SELECT *
FROM Producto
WHERE (((Producto.IDproducto)>5 And (Producto.IDproducto)<10));
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #3 (permalink)  
Antiguo 30/09/2006, 21:55
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 17 años, 10 meses
Puntos: 34
Lo recomendable es TOP ya que funciona similar al LIMIT de MYSQL, ya que si no manejas un id consecutivo o algun campo similar esto no funcionaria, saludos.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #4 (permalink)  
Antiguo 01/10/2006, 09:59
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
pero entonces como puedo lograr el efecto de pagina a pgina con el top, ya que eso toma los primeros N elementos
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #5 (permalink)  
Antiguo 02/10/2006, 08:23
Avatar de bitbow  
Fecha de Ingreso: julio-2006
Ubicación: Distrito Federal
Mensajes: 635
Antigüedad: 17 años, 10 meses
Puntos: 34
Bueno eso es cuestion del programador, de esa forma limitas los registros que muestras, existen muchas formas de hacer la interfaz y lograr lo que tu quieres, puedes por ejemplo asi :
Código PHP:
SELECT Top 9campo1,campo2,campo_etc  FROM tabla 
WHERE campo_id 
>= variable
Creo que asi quedaria si estoy mal ahi me corregiran, bueno el caso es que asi cuando el usuario de en la pagina siguiente le mostrara los siguientes 9 registros, si quieres algo asi omo que le pongas
Código PHP:
paginar
pues no conozco algo asi, aunque de seguro por ahi hay algun proyecto , hoy en dia hay proyectos para todo.

Saludos y suerte.
__________________
El ego es el mayor enemigo de un hombre inteligente.
  #6 (permalink)  
Antiguo 03/10/2006, 16:03
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
si pero como tu lo demuestras eso solo funciona con un campo id
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #7 (permalink)  
Antiguo 04/10/2006, 07:37
Avatar de MACGREGOR  
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 19 años, 3 meses
Puntos: 0
De acuerdo Teoria De Conjuntos

Hola.

Tal y como te han indicado puedes utilizar ese tipo de consulta para mostrar rangos... pero yo te recomiendo realizar lo siguiente.

Si sabes que siempre vas a mostrar de 9 en 9 los registros solamente necesitas tener claro que tienes un conjunto de datos a mostrar y quieres hacerlo en subconjuntos de 9 elementos en un cierto orden.

La solución la obtendrías a partir de una variable que te diga cuantos subconjuntos has enseñado ya. Piensalo como 3 conjuntos.

1. conjunto de registros ya enseñados.
2. conjunto de 9 registros a mostrar.
3. conjunto con el resto de registros hasta el final. (este lo necesitarás para controlar la última página)

Solo necesitas la instrucción TOP y una variable y puedes crear el primero de los conjuntos.

"Select top 9 ...."

El segundo subconjunto lo puedes calcular de forma muy parecida.
Pides a tu DB que te muestre todos los registros hasta tu variable "Select top 18 ... " y le quitas los que están incluidos en el primer subconjunto.
(Nos interesan los que no están en la intersección de los dos conjuntos).

Select top 18 .... MINUS Select top 9 ...

De esta manera tendrás como resultado de tu consulta 9 registros en el orden que tu quieras (los puntos suspensivos son el resto de la consulta que ha de ser idéntica en todos los casos, mismos campos y mismo orden).
Esto te sirve en cualquier tabla sin tener que utilizar un campo númerico, ya que ahun en el caso de que sea clave primaria y autoincrementado no tienen porqué ser consecutivos. (Si borras algún registro aparecen "saltos" en la secuencia)

Te recomiendo que para tratar tu variable utilices el ordinal correspondiente al último registro mostrado,(al empezar has enseñado 0 registros, es decir si vas a mostrar los registros del 90 al 99 utilices el 90 como referencia, así podras poner en tu senténcia SQL "Select top 90+9 ..." (el +9 lo puedes poner en todas las consultas a modo de constante y incrementar de 9 en 9 tu variable).

Esto lo digo porque así te ahorras tener que tratar el primer caso ya que
harías "Select top 0+9 .... MINUS Select top 0..." (tu variable inicialmente es 0 y eliminarías el conjunto vacío, resultado ok, luego la incrementas tu variable en 9). Esto lo digo porque no sé que devolvería Access en caso de que te descuides del primer caso y le digas "Select top -9..." (los nueve últimos? todos menos los 9 últimos? error?)

Espero que te ayude :D

PD: Ten en cuenta que todo lo que te he dicho es cierto excepto lo de mostrar de 9 en 9 los elementos por página.
Motivo: Select top 9... en caso de empate entre la posición 9 y la 10 no devuelve 9, devuelve 10 registros...

Por eso en muchos otros sistemas gestores de Bases de Datos existen instrucciónes como rank o denserank.

Última edición por MACGREGOR; 04/10/2006 a las 07:58
  #8 (permalink)  
Antiguo 07/05/2008, 13:25
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Re: paginar con access

Buscando en Internet como Paginar con ODBC y SQL Server Express 2005 me encontre con este posto..

Tengo una gran consulta, como puedo con SQL mostrar los registros por ejemplo del 10 al 20..

Ya que el TOP me muestra los primeros N numeros....

Mi consulta SQL es la siguiente... me gustaria que me ayuden a armarla, ...

Gracisa

Código PHP:
$dns="ACU";
$conexion odbc_connect("$dns","","","");

$strqry "select a.PIN, a.ACCESS_DATE, a.TYPE, a.ACU_NUMBER, u.USER_CODE, u.USERS_GROUP_ID, u.FIRST_NAME, u.LAST_NAME FROM access a INNER JOIN users u ON u.USER_CODE =  a.PIN where 1 = 1"
if (
$fecha_desde !=="" and $fecha_hasta !==""){
$strqry.= "AND a.ACCESS_DATE BETWEEN '$inicio' AND '$fin'";
}
if (
$user_id !=="Apellido y Nombre") {
$strqry.= " AND a.PIN='$user_id'";
}
$strqry.= "ORDER BY u.LAST_NAME "
Solo necesito que me ayuden a harmar la consulta SQL por ejemplo mostrar del 20 al 50 yo armo luego lo del codigo php... gracias a todos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:51.