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 = "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; " Set rstEmployees = New ADODB.Recordset ' Utiliza el cursor del cliente para activar la propiedad ' AbsolutePosition. rstEmployees.CursorLocation = adUseClient rstEmployees.Open "empleado", 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 = "" For intRecord = 1 To rstEmployees.PageSize strMessage = strMessage & _ rstEmployees!fname & " " & _ rstEmployees!lname & " " & _ 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
Ir a la versión completa