Filtrar datos en ListView
Espero que me puedas dar una mano con un problema que tengo.
Estoy queriendo llenar un Listview desde un recordset (ADO), mirando un código fuente he podido cargar todos los registros del Recordset en el List, pero mi problema es que solo quiero cargar dos campos de los 7 que tiene mi recordset.
Ejemplifico con código:
For i = 0 to rs.Fields.Count - 1
ListView1.ColumnHeaders.Add , , rs.Fields(i).Name
Next
Ahí cargo las cabezeras, eso funciona, pero lo que quiero es cargar solo dos campos de mi tabla ("nombre_materia" y "profesor")
Si escribo ListView1. ColumnHeaders. Add,, rs. Fields("nombre_materia.").Name Me funciona, pero solo carga una columna y no se como agregar la segunda.
Para cargar los elementos:
Dim item As Listitem ' estas son las variables declaradas para que se entienda mejor
Dim campo As Integer
Dim i As Integer
While Not rs.EOF
Set item = ListView1.ListItems.Add(, , rs.Fields(0))
i = 1
For campo = 1 To rs.Fields.Count - 1
If Not IsNull(rs.Fields(campo)) Then
item.SubItems(i) = rs.Fields(campo)
End If
i = i + 1
Next
Rs. MoveNext
Wend
Acá estoy más perdido que con el de las cabezeras, no entiendo como agregar determinados campos y no todos, tampoco se bien a que se refiere con Subitem.
Podrías dame una mano y tratar de explicarme como hago para que de mi recorset con varios campos, filtre y cargue solo los 2 (o más, pero no todos).
Te agradezco mucho desde ya. Saludos
Pd: otra consultita de menor interés ¿Con qué propiedad se cambia el color de la cabecera de Listview?
Estoy queriendo llenar un Listview desde un recordset (ADO), mirando un código fuente he podido cargar todos los registros del Recordset en el List, pero mi problema es que solo quiero cargar dos campos de los 7 que tiene mi recordset.
Ejemplifico con código:
For i = 0 to rs.Fields.Count - 1
ListView1.ColumnHeaders.Add , , rs.Fields(i).Name
Next
Ahí cargo las cabezeras, eso funciona, pero lo que quiero es cargar solo dos campos de mi tabla ("nombre_materia" y "profesor")
Si escribo ListView1. ColumnHeaders. Add,, rs. Fields("nombre_materia.").Name Me funciona, pero solo carga una columna y no se como agregar la segunda.
Para cargar los elementos:
Dim item As Listitem ' estas son las variables declaradas para que se entienda mejor
Dim campo As Integer
Dim i As Integer
While Not rs.EOF
Set item = ListView1.ListItems.Add(, , rs.Fields(0))
i = 1
For campo = 1 To rs.Fields.Count - 1
If Not IsNull(rs.Fields(campo)) Then
item.SubItems(i) = rs.Fields(campo)
End If
i = i + 1
Next
Rs. MoveNext
Wend
Acá estoy más perdido que con el de las cabezeras, no entiendo como agregar determinados campos y no todos, tampoco se bien a que se refiere con Subitem.
Podrías dame una mano y tratar de explicarme como hago para que de mi recorset con varios campos, filtre y cargue solo los 2 (o más, pero no todos).
Te agradezco mucho desde ya. Saludos
Pd: otra consultita de menor interés ¿Con qué propiedad se cambia el color de la cabecera de Listview?
2 Respuestas
Respuesta de Roberto Alvarado
2
Respuesta de nick martinez
1