It is unclear to me the exact result you desire.
My best guess is as follows:
Select records where the category is a match, and either the title OR the details match. (By match, in the context of your select statement, I mean "Like"... since you are using "Like", which means that a match occurs when the field contains the value between the percent signs anywhere within it).
If this is your quest, then you must parenthesize thusly:
Select records where the catergory is a match and (either the title or the details match)
So changing your code will produce this result (assuming there are no typos, etc):
"SELECT * FROM products where Category like " & "'%" & strKeyword & "%'" &_
" and (title like " & "'%" & strKeyword & "%'" &_
" or details like " & "'%" & strKeyword & "%')" &_
" order by " & strOrder & " " & strSort
I hope that helps. Please let me know if I misunderstood your question
Woody Z
http://www.learntoprogramnow.com