Firstly, this is really an Access question rather than an Excel one.
Anyway - when debugging dynamic SQL errors the very first step must be to look at what is being executed. If you stick in a Debug.Print strSql I think you will see the error immediately and kick yourself up the bum for missing it. You also might spot the error a little easier in fixed width font (e.g. courier). If you wrapped the above in [ code][/ code] tags it would make it more obvious.
Anyhoo - print out the contents of strSql and let us know if you spot the error. If you don't then post the contents here