Porque no probas esto; a mi me funciona bien.
Código:
Private Sub cmdBuscar_Click()
' Mostrar los datos en el listview
Dim sBuscar As String
Dim tRs As Recordset
Dim tLi As ListItem
'
' Formar la cadena de la consulta:
' Se busca por el nombre del autor y se muestran clasificados por el nombre
sBuscar = "SELECT * FROM tabla WHERE campo LIKE '" & txtBusqueda & "' ORDER BY Author"
' Creamos un recordset del tipo "estático", el cual no es modificable
' para poder modificarlo, tendría que ser del tipo dbOpenDynamic
Set tRs = db.OpenRecordset(sBuscar, dbOpenSnapshot)
' Comprobar que hay datos en el recordset
With tRs
' Si no hay datos...
If (.BOF And .EOF) Then
MsgBox "No se han encontrado los datos buscados"
Else
' Mostrar los datos hallados
ListView1.ListItems.Clear
.MoveFirst
Do While Not .EOF
Set tLi = ListView1.ListItems.Add(, , .Fields("campo1") & "")
tLi.SubItems(1) = .Fields("campo2") & ""
tLi.SubItems(2) = .Fields("campo3") & ""
.MoveNext
Loop
End If
End With
End Sub
Saludos.