As explained in post #10 this is the problem with what you are trying to do with your data structured as it is - you need to look at the solution I posted in #12 with regards how you set out your data. Or create a similar looping function to your excel example - but you didn't want to loop.
The only other thing I can think of is you restructure your city_raw column to have an identifier both before and after each city name - e.g.
|NCT of Delhi|New Delhi|Delhi|
then your where statement would become
WHERE (((InStr([Raw_City],"|" & [city] & "|"))>0));