PESQUISA EM LISTVIEW

HARRY631 04/11/2009 13:11:40
#326916
Olá, eu to tentando colocar um sistema de pesquisa em uma listview, e achei esse código:

Public Sub SearchListView(ListViewX As ListView, SearchString As String, ListViewZ As ListView)

On Error Resume Next
Dim w, x, y, z As Integer
Dim a, b As String
ListViewX.ListItems.Add , , [Ô] [Ô]
ListViewX.ListItems.Item(1).Selected = True
SearchString = LCase(SearchString)


Do Until ListViewX.SelectedItem.Index = ListViewX.ListItems.Count
a = LCase(ListViewX.SelectedItem.Text)
z = Len(a)
y = Len(SearchString)


For x = 1 To z


If Mid(a, x, y) = SearchString Then


If ListViewX.SelectedItem = b Then
Else
ListViewZ.ListItems.Add , , ListViewX.SelectedItem
b = ListViewX.SelectedItem
End If

End If

Next x

w = ListViewX.SelectedItem.Index
w = w + 1
ListViewX.ListItems.Item(w).Selected = True
Loop

ListViewX.ListItems.Remove (ListViewX.ListItems.Count)
End Sub

_____

Só que ele só faz a busca no primeiro campo!

Tem como fazer com q procure em todos os campos?
JPAULO101 04/11/2009 16:09:56
#326939
Olá HARRY631
para fazer uma busca dinâmica, uso essa rotina. Coloque 1 Text, 03 ComboBox

Public Sub txtFiltro()

Dim procurarpor As String
Dim ordernarpor As String
Dim DASC As String

If cmbProcurarPor.ListIndex = -1 Then cmbProcurarPor.ListIndex = 0
If cmbOrdernarPor.ListIndex = -1 Then cmbOrdernarPor.ListIndex = 0
If cmbOrdem.ListIndex = -1 Then cmbOrdem.ListIndex = 0

If cmbProcurarPor.ListIndex = 0 Then
procurarpor = [Ô]Código[Ô]
ElseIf cmbProcurarPor.ListIndex = 1 Then
procurarpor = [Ô]Contrato[Ô]
[ô]ElseIf cmbProcurarPor.ListIndex = 2 Then
[ô] procurarpor = [Ô]email[Ô]
End If

Select Case cmbOrdernarPor.ListIndex
Case 0
ordernarpor = [Ô]Código[Ô]
Case 1
ordernarpor = [Ô]Contrato[Ô]
[ô]Case 2
[ô] ordernarpor = [Ô]email[Ô]
End Select

Select Case cmbOrdem.ListIndex
Case 0
DASC = [Ô]asc[Ô]
Case 1
DASC = [Ô]desc[Ô]
End Select


verifica_rs
rs.Open [Ô]select * from Sua Tabela where [Ô] & procurarpor & [Ô] like [ô][Ô] & txtProcurar & [Ô]%[ô] order by [Ô] & ordernarpor & [Ô] [Ô] & DASC, cnn

preenche_lista

End Sub

No Evento Chance da caixa de texto coloque

Private Sub txtProcurar_Change()
txtFiltro
End Sub

Tópico encerrado , respostas não são mais permitidas