PESQUISA EM LISTVIEW
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?
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?
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
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