some of your code doesn't make sense. If control is null upon button click, set control color, then set focus to it, then change its color (again) then reset the form record source (automatically wiping out whatever the records are). But if it's not null or "" then set source to strFind where ""*" & strSearch & "*"" part looks suspect. Did you happen to output source string in immediate window to check? Does it result in a filter clause that you can verify the record count against?
Would be interesting to follow the code execution and verify conditions - if you could post sample db.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.