mac,
OK, when you say 'stored sql procedure', you're now saying it's a backend that's not access, such as sql7 or Oracle? I guess that's moot anyway. It would be faster with a stored procedure (in the case of an odbc backend) and also faster with a stored Access query (with access backend) than a select statement. This is because the sql is compiled in both cases, whereas when you pass a select statement to create a recordset, it must be compiled first, which is the time difference.
In Access, the difference will be minimal. However, in an odbc linked table, the difference can be huge, since a straight 'select...' statement sent to an odbc backend *may* require JET to process it completely, this depends on the comlexity of the query. For example, a simple select will be processed on the server and the correct records returned--essentially the same as a passthru query. But the more complex you get, and this also depends on the odbc driver and sql backend, JET may need the entire table(s) to be schlepped to the local frontend prior to processing. If you use a local access function, for example, that's not translatable to the native backend, then there is no way the server can do anything with your select statement--it just gives up and sends the entire table to Access and says 'you deal with it'.
--Jim