The .Sort property of a Recordset is one of the slowest ways of sorting data, unless the set of records is extremely small. A far better way to sort data is to open the table directly and then specify an index that has the data sorted in the order that you wish to move through the table. If you can't open a table-type recordset (e.g., with attached tables [except see tip #3] or ODBC data), then create a new query and specify an ORDER BY clause. Running this new query will be faster than recreating a new recordset based on the existing recordset.
As a general rule, you should not use the .Sort property on any set of rows that have more than 100 records.