Why don't you do a "Pass Through Query"???
Open Queries in Access , Select SQL Spesific--> Pass Through Query (PTQ)
PTQ are executed directly on the datasource , in your case directly on the SQL server, they use ODBC (properties of the query) and you can access them by code
I think that this will solve your problems