How about:
WHERE Len([MyTable]![MyNumber]) - InStr(1, [MyTable].[MyNumber], ".") > 2
which should have the exact same result as the solution Samoan posted.
Neither solution takes into account if the number doesn't have a decimal point to begin with: Both will return true if the MyNumber field doesn't contain a decimal point (I get errors if the number doesn't contain a decimal...)
How I would do it is like this:
WHERE InStr(1, Str([MyTable]![MyNumber]), ".") > 0 And Len(Str([MyTable]![MyNumber])) - InStr(1, Str([MyTable].[MyNumber]), ".") > 2
hth,