Hi
I have written/crated dozens of reports in Excel usung data from Access and I invariable write the code in an Excel Module(s) providing buttons/UserForms for parameter selection etc (parameter retieved from the Access DB on the forms Initialize event obviously!).
To do this I use ADO connections and recordset objects.
The advantage I find in doing this is that I have total control over the report and its formatting; it also runs faster in Excel (that is a mystery but it usualy the case).
Some of these reports a quite large with 30 plus sheet and significant amounts of data.
The required query string(s) can (usually are) created in the Access query designer and pasted into Excel VBA (with mods to concatenate variable as necessary, particularly the wild card character in ADO i.e. uses %).
Virtually all the reports are created on the fly (only use template for complicated graph).
In my case this is almost essential as in some cases as I pull data from up to 4 Databases for a single report.
So, I would recommend this approach is considered in these circumstances.
Just to complete this little diatribe, I also use Excel to import data from excel spread sheet (generated by a financial/SQL database, again giving me total control over data validation etc. and the ability to save the data to the database structure as required.
Even when I do export data from within Access I always use automation (late binding) and never the built in DoCmd.TransferSpreadsheet. Again this eliminated any formatting issued etc.
btw, can ADO or DAO recordset open saved query to get data ?
Yes it can, it is treated just the same as a table (as it is in Access). However I always connect to the back end (its quicker) and stored queries are normally only in the front end, in which case I just use the stored query string in code as a sub-query.
Not sure if this is any help with the initial question, but I thought it might. I am sure other will have an opinion on this !!
MTB