Programación General > Visual Basic 6.0 e inferiores

 Se Podra Hacer Este Tipo De Form ????

(1/1)

zareth:
hola gente  :hola:
como estan aki otra vez con una pekeña consulta, les cuento ke tengo un formulario ke kontiene una grilla (datagrid) ke la kargo mediante kodigo, por ser tantos registros demora en mostrarme el formulario, estuve pensando y llege a esto ... se podra hacer ke esa grilla (DATAGRID) solo kargue determinado numero de registros (por ejemplo 100 registros) y ke luego mediante un boton el cual indica siguiente me muestre los otros 100 registros y asi sucesivamente y obiamente tenga otro boton donde me indike anterior (claro esta  :whistling: ), osea es la misma idea ke cuando uno tiene una cuenta de correo no e has percatado ke kuendo abres la bandeja te muestra los primeros 25 y presionas flecha siguiente y muestra el resto "manteniendo el numero de registros a mostrar"  <_< , al final se podra llegar a esto..... algun comentario o a alguien ke se puso esn este dilema... saludos cordiales y a la espera de sus comentarios

z4r3th  :comp:

cee:
si se puede utiliza en tu consulta un count(nombre) por ejemplo y donde dices where count <100 y listo


suerte

Jose Arriagada:
Si tus registros tienen algun campo que se indice, entonces, si puedes hacerlo, utilizando el primer y ultimo indice obtenido de la primera consulta.
Posteriormente, al presionar "SIGUIENTE", tu consulta comienza desde el indice ULTIMO de la consulta ANTERIOR.

Otra modalidad es, crear una pila de datos que contengan, el primer y ultimo registro, y que el posicionador de la pila, el el contador de botones SIGUIENTE y ANTERIOR.

jimmy007:
Lo ke tienes ke hacer es paginar los resultados, depende tambien de ke base de datos uses si usas MySQL con LIMIT paginas, si estas con SQL Server lo puedes hacer con un SP asi:


--- Código: Text --- En el ejemplo extraemos un listado de la base de datos Northwind de productos ordenados por categorías, extraemos los campos ID del producto, nombre del producto y nombre de la categoría. El Stored Procedure recibe dos parámetros: - Index, el número de página que queremos mostrar- NumRegs, el número máximo de registros a mostrar por página. Create Procedure Paginacion_Registros --Número de página a mostrar @index integer -- Total de resgistros por página @NumRegs integerAs -- Declaramos dos variables que serán los índices mayor-- y menor del filtro de paginación Declare @Maximo numericDeclare @Minimo numeric -- Y asignamos los valores que le corresponden a cada página-- la asignación de los límites se realiza de la siguiente forma:-- si index = 1 y NumRegs = 10, entonces los registros a mostrar-- son del 1 al 10, si index = 2, los registros a mostrar son del 11 al 20-- y asi sucesivamente. Select @Maximo = (@index * @NumRegs)Select @Minimo = @Maximo - (@NumRegs - 1) -- Creamos la tabla temporal para la paginación,-- con un campo auto numérico que será el que nos-- sirva de índice a la hora de extraer los registros. Create Table #tmpListado (nOrden INT IDENTITY(1,1),IDProducto numeric,NombreProducto varchar(40),NombreCategoria varchar(15)) -- Insertamos en la tabla temporal directamente del select Insert #tmpListado Select Products.ProductID, Products.ProductName, Categories.CategoryNameFrom Products, CategoriesWhere Products.CategoryID = Categories.CategoryIDorder by Categories.CategoryName -- Una vez tenemos los datos en la tabla temporal los extraemos -- con un select filtrados por los valores de paginación-- @Maximo y @Minimo Select IDProducto, NombreProducto, NombreCategoriaFROM #tmpListadoWHERE (nOrden BETWEEN @Minimo AND @Maximo) Si pruebas el ejemplo y vas cambiando el valor de index veras como va paginando el Stored Procedure.   ---------------------------------------------------------

Tambien puedes paginar desde un recordset, por ejemplo:


--- Código: Text --- Este ejemplo utiliza las propiedades AbsolutePage, PageCount y PageSize para mostrar los nombres completos y las fechas de contratación de la tabla Empleados, de cinco en cinco registros. Public Sub AbsolutePageX()      Dim rstEmployees As ADODB.Recordset   Dim strCnn As String   Dim strMessage As String   Dim intPage As Integer   Dim intPageCount As Integer   Dim intRecord As Integer    ' Abre un objeto Recordset mediante un cursor del    ' cliente para la tabla Empleados.   strCnn = &#34;Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; &#34;   Set rstEmployees = New ADODB.Recordset   ' Utiliza el cursor del cliente para activar la propiedad    ' AbsolutePosition.   rstEmployees.CursorLocation = adUseClient   rstEmployees.Open &#34;empleado&#34;, strCnn, , , adCmdTable      ' Muestra los nombres y las fechas de contratación, de cinco   ' en cinco registros.   rstEmployees.PageSize = 5   intPageCount = rstEmployees.PageCount   For intPage = 1 To intPageCount      rstEmployees.AbsolutePage = intPage      strMessage = &#34;&#34;      For intRecord = 1 To rstEmployees.PageSize         strMessage = strMessage & _            rstEmployees!fname & &#34; &#34; & _             rstEmployees!lname & &#34; &#34; & _             rstEmployees!hire_date & vbCr         rstEmployees.MoveNext         If rstEmployees.EOF Then Exit For      Next intRecord      MsgBox strMessage   Next intPage   rstEmployees.Close End Sub  
Espero te sirva

Saludos desde México :hola:

Navegación

[0] Índice de Mensajes

Ir a la versión completa