Tengo este codigo, que me vale bien para buscar por columna, y seleccionar la coincidencia:
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
le faltaría agregarle un ciclo para que continue con la palabra siguiente al volver a aprtar el boton. Alguna idea?
Si tienes el ejemplo, que más te falta? :silbar:
andat a trollear a otro lado capo, no molestes acá, salu2
sintetizé todos mis problemas en un post modificado mas rapido. La petición es directa y sin vueltas, gracias :laugh:
Los mensajes privados, son razonablemente para cosas en las que nadie más tenga ver o saber lo que uno tenga que decir a otro, no para solicitar ayuda...
Cita de: RiasChan en 21 Abril 2018, 21:13 PM
Holal, me acuerdo de vos, fuiste muy amable al darme un codigo exelente para buscar en un list.
Lo que me pasa ahora es q tengo un listview, (ya cargado todo) La idea es buscar por columnas y que el foco se pare en esa fila (ya esta hecho) Lo que me faltaria es que cada vez q hago click en el commandbuton vuelva a buscar y marque el siguiente, o sea, el ciclo. Tenes idea?
este es el código del boton:
Dim k As Long
Dim Opcion As Integer
Dim dato As String
Dim Item As ListItem
' Busca por la primer columna ( por item )
If Option2.Value = True Then
dato = txtSearch.Text
Opcion = lvwText ' busca por el item
End If
' busca por las demás columnas ( por SubItem )
If Option1.Value = True Then
dato = txtSearch.Text
Opcion = lvwSubItem ' busca por los subitems
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
El problema es que ma pereza tener que armar todo un proyecto sólo para verificar una tontería y que luego no se ajuste a tus necesidades. Ya te dije que un listview es un control complejo y muy completo. en realidad si uno conoce con cierta soltura vb6, el código que te dí para el control listbox, debiera ser suficiente para saber aplicalro a otro control que también disponga de una lista... solo cambian nombres de propiedades, de objetos, y la forma de llagar a ellas...
Por otro lado, si me pasas copia del proyecto (basta con la ventana donde tengas el listview (con la configuración que tengas para el propio control), y el código de respuesta... veo de cargarlo, ejecutarlo y donde está el fallo, error, etc... entonces no es tanto tiempo de mi parte.
(es decir, no necesito chorrocientos formularios, ni módulos de tú proyecto,
sólo lo preciso para probarlo con la configuración que mantienes y otros controles que tengas asociados al listview incluso si haces copia del mismo, luego en la copia elimina todo lo superfluo para probarlo (esto es, si tienes un textbox, un label, un botón, etc... que interrelacionan con el listview, se quedan pero si no, sobra solo me hará perder tiempo, de igual modo elimina todo el código no relacionado, esto es si en la carga del formulario hay líneas relacionadas con el listview, se quedan, etc...). Cuando lo que se pide no es puntual, o no se es explícito, da pereza porque conlleva mucho más tiempo y sin la certeza de que sea lo que uno realmente necesita.
Saludos...
Hola, todo bien no pasa nada. De casualidad encontre este ejemplo 97 (ejemplo 2) que hace justo lo que quiero, ya esta solucionado dsp de buscar un rato (por que encontre eso de casualidad bajando desde el ejemplo 192 de recursos vb. salu2
http://www.recursosvisualbasic.com.ar/htm/listado-api/97-buscar-en-listview.htm