
Marcar datos repetidos en un ListView mediante una búsqueda
Publicado por Sergio (1 intervención) el 22/04/2018 18:53:54
Hola, es mi primera vez aquí, encantando de preguntar en este gran foro que muchas veces me ha salvado la vida.
Mi problema es el siguiente.
Ya tengo mi ListView como todo cargado previamente con otro código desde una base de datos, eso ya anda bien, la lista carga bien. Luego tengo el siguiente código, que lo hace es buscar por columunas en el listview basándose en lo que tenga seleccionado en un option buton. Entonces al hacer click en el boton, selecciona lo que haya coincidido en el textbox que se ingresó, y lo buscará en la columuna indicada según el option buton. EL codigo funciona bien, no distingue entre mayusculas y minusculas. Lo único que no encuentra el resultado si no está exactamente escrito como figura en la lista, pero es lo de menos.
Lo que yo quiero hacer, es que cuando vuelvo a hacer click en el comand buton, entre en un ciclo y recorra toda la lista marcándome la siguiente coincidencia. Esto es lo que necesito hacer.
les dejo el código que estoy usando
espero me puedan ayudar con la modificacion que le debo hacer al código, y si me lo pueden dan directamente el código mejor por que los ciclos for, while y do me cuesta mucho entender su funcionamiento aún
Mi problema es el siguiente.
Ya tengo mi ListView como todo cargado previamente con otro código desde una base de datos, eso ya anda bien, la lista carga bien. Luego tengo el siguiente código, que lo hace es buscar por columunas en el listview basándose en lo que tenga seleccionado en un option buton. Entonces al hacer click en el boton, selecciona lo que haya coincidido en el textbox que se ingresó, y lo buscará en la columuna indicada según el option buton. EL codigo funciona bien, no distingue entre mayusculas y minusculas. Lo único que no encuentra el resultado si no está exactamente escrito como figura en la lista, pero es lo de menos.
Lo que yo quiero hacer, es que cuando vuelvo a hacer click en el comand buton, entre en un ciclo y recorra toda la lista marcándome la siguiente coincidencia. Esto es lo que necesito hacer.
les dejo el código que estoy usando
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub cmdBuscar_Click()
Dim Opcion As Integer
Dim dato As String
Dim Item As ListItem
' busca por las demás columnas ( por SubItem )
If Option1.Value = True Then
dato = txtSearch.Text
Opcion = lvwSubItem ' busca por los subitems
End If
Next i
' Busca por la primer columna ( por item )
If Option2.Value = True Then
dato = txtSearch.Text
Opcion = lvwText ' busca por el item
End If
' si lo ingresado es una cadena vacia sale
If dato = vbNullString Then
Exit Sub
End If
' Busca con el método FindItem, estableciendo la opcion de búsqueda
Set Item = ListView1.FindItem(dato, Opcion, , lvwPartial)
' si el item es nothing no se encontró
If Item Is Nothing Then
MsgBox " No se encontró el dato", vbInformation
Exit Sub
Else
' .. si no , selecciona el elemento encontrado
Item.EnsureVisible
Item.Selected = True
ListView1.SetFocus
End If
End Sub
espero me puedan ayudar con la modificacion que le debo hacer al código, y si me lo pueden dan directamente el código mejor por que los ciclos for, while y do me cuesta mucho entender su funcionamiento aún
Valora esta pregunta


0