Hej igen! Borde gå att ändra if-satsen till något liknande:Wildcard i listviewsökning
Som topic, kan man ha typ * för att kunna söka ett ord i listview utan att man måste veta början?
för närvarande har jag följande kodsnutt för sökningen som funkar fint, men vet jag sista ordet eller mitt i och inte det första blir det problem.
<code>
Private Sub search_Click() 'Sök i listview
Dim src As String
src = InputBox("Sök." , "Sök", "")
goFind ListView1, src
End Sub
Private Sub goFind(ListView1 As ListView, strSearch As String) 'sök i listview
Dim i As Integer
Dim a As String
Dim found As Boolean
Dim location As Integer
cr = Len(strSearch)
strSearch = Left(UCase(strSearch), cr)
For i = 1 To ListView1.ListItems.Count
a = Left(UCase(ListView1.ListItems.Item(i)), cr)
If a = strSearch Then
found = True
location = i
Exit For
Else
found = False
End If
Next i
If found = True Then
ListView1.SetFocus
ListView1.ListItems(1).Selected = True
For i = 1 To location - 1
SendKeys "{Down}"
Next i
Else
MsgBox "Sökningen hittade inget.", vbOKOnly + vbInformation, "Inget"
End If
</code>
Tack på förhand
//JockeSv: Wildcard i listviewsökning
If InStr(ListView1.ListItems.Item(i), strSearch) Then
När du markerar träffen borde du kunna förenkla till:
If found = True Then
ListView1.ListItems(location).Selected = True
Else
MsgBox "Sökningen hittade inget.", vbOKOnly + vbInformation, "Inget"
End If
/Johan