Hola: Yo uso algo parecido a esto:
(txtBusc.Text contiene la/las palabras que deben buscarse, introducidas mediante un textbox)
Private Sub txtBusc__KeyDown(KeyCode As Integer, Shift As Integer)
Dim cBus As String, n As Integer
Dim pBus As String, nSpa As Integer, aBus As Variant
Dim cAnd As String
If KeyCode = 13 Then
If txtBusc.Text = "" Then
Exit Sub
End If
pBus = Trim(txtBusc.Text)
aBus = Array("", "", "", "", "", "", "", "", "") ' Para anidar hasta 9 palabras, que creo son suficientes...
nSpa = 0
' ATENCIÓN: Preparo la SQL compleja:
Do
n = InStr(pBus, " ")
If n = 0 Then
aBus(nSpa) = pBus
Exit Do
End If
aBus(nSpa) = Left(pBus, n - 1)
pBus = Trim((Mid(pBus, n + 1)))
nSpa = nSpa + 1
Loop
cBus = ""
cAnd = ""
For n = 0 To nSpa
cBus = cBus & cAnd & "CampoName like '*" & aBus(n) & "*'"
cAnd = " Or " ' En los casos en que debe contener TODAS las palabras del textbox, sería: cAnd = " And "
Next
' Miro a ver si algún registro cumple la condición
dbData.Recordset.FindFirst (cBus)
If dbData.Recordset.NoMatch Then
msgbox("No se encuentra ningún caso.")
Exit Sub
End If
' Abro un recordset con los casos que cumplan la condición de búsqueda
' Aplico la SQL preparada
DataBus.RecordSource = "Select * From Tabla1 Where " & cBus & " Order by CampoName"
DatBus.Refresh
end If
End Sub