If all you are trying to do is get rid of spaces, why don't you instead use this:
SELECT ShopMaster.ShopId, ShopMaster.ShopName, Trim(ShopMaster.ShopName) AS SearchShopName FROM ShopMaster
If it's not just about extra spaces, you might want to try the iif instead of Replace. (I didn't test with a 2007 access database, so I'm not sure it's still available...)
SELECT ShopMaster.ShopId, ShopMaster.ShopName, iif(ShopName,' ','') AS SearchShopName FROM ShopMaster