Sección de códigos , trucos y ejemplos para visual basic


268 - Ado y ListView ( Ejemplo de Paginación de un recordset )

<Volver> - Anterior - Siguiente



 

Módulo de clase para paginar un recordset ADO, y visualizar los registros en un control ListView

 

Este ejemplo es muy similar a este otro , Paginar FlexGrid con Ado

Los únicos cambios que tiene son los relacionados a la forma de ir añadiendo en el bucle los registros y además tiene una propiedad mas para indicar el modo de ajuste de los encabezados de columnas

 

Vista del formulario de ejemplo con el control ListView con los registros del recordset paginado

 

 

El módulo de clase tiene las siguientes propiedades, métodos y eventos:

 

lista de los métodos , propiedades del módulo de clase para paginar el Listview

 

 

 

Pasos para usar el módulo:

 

Crear una instancia del mismo:

'Nueva instancia de la clase
Set obj = New Class1

 

Luego especificar en la propiedad Connection la Conexión ADO.

'Nueva conexión ADO
Set cnn = New ADODB.Connection

 

'Nueva conexión ADO
    Set cnn = New ADODB.Connection
    
    'Propiedades de la conexión ADO
    cnn.CursorLocation = adUseClient
    
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BD.mdb"
    
        'Establece la conexión
        Set obj.Connection = cnn 

 

En la propiedad SQL:

Obj.sql = "Select * FROM [Detalles de pedidos]" 

 

La cantidad de registros a mostrar por página:

Obj.Registros_Por_Pagina = 250

 

el modo de ajuste de los encabezados ( Es opcional y tiene tres valores: AJUSTAR_POR_COLUMNA, AJUSTAR_POR_ITEM y NO_AJUSTAR) Si no se especifica , los encabezados no se ajustan

Obj.AutoSizeColumnHeader = AJUSTAR_POR_COLUMNA

 

Aquí se debe Indicar ( en la propiedad ListView ) el control ListView a usar.

obj.ListView = ListView1 

 

... Luego de especificar lo anterior ya se pueden cargar los datos en la grilla, por ejemplo llendo a la primer página con el método GoToPage y pasarle el número de la misma, en este caso 1, o la página que se quiera cargar.

 'Va a la página 1, y carga los datos en FlexGrid de dicha página
  Call obj.GoToPage(1) 

 

Desplazarse por los registros

 

Para desplazarse por las páginas hay que usar los métodos:

FirstPage, PreviousPage, NextPage y LastPage

Por ejemplo lo siguiente va a la última página

obj.FirstPage

Siguiente:

obj.NexPage

Anterior:

obj.PreviousPage

última página del recordset

obj.LastPage

Para ir a una pagina concreta, por ejemplo la página 15

obj.GoToPage 15

 


 

Ejemplo:

 

 

Nota: Primero se lista el código del módulo de clase ( Se debe llamar Class1 ) y luego el código para el formulario

 

Código en el Módulo Class1:

 


 

Código fuente a colocar en el formulario:

 

Nota: en el ejemplo también se utiliza la función Api SendMessage , para bloquear el repintado del contenedor del control ListView ( Un Formulario o Picturebox ) . Esto hace que el control no parpadee al moverse por las páginas, y además la carga de registros es mucho mas rápida, ya que el control ListView no presenta los datos hasta que se terminaron de cargar todos.

Esto último lo podés ver en este ejemplo: Acelerar carga de datos en un ListView

 


Recursos vb6 - Enlaces relacionados



Buscar en Recursos vb