In a nutshell, it's not an Access query, it's a JET query. When you're running Access, queries can call back into VBA. But when you're going through ODBC or ADO, the JET engine doesn't have the whole VBA model to draw on because it's simply not running.
Your best bet is to export from Access to Excel.