Derek
Regardless of the retrieved order, you can not specifically control where a record tacks on a record.
For example, BTrieve will a record into a "tree" using an algorythym to "balance" the number of records in the top, mid and bottom of the branching tree. I seem to recall this is an effective approach for moderate to high amount of data, but has a lot of overhead for small databases.
Others, may just tack on the record at the end. This is a simple approach which suffers when the number of records increases.
I am not sure which approach the Jet Engine uses.
Regardless, the Jet Engine will insert the record per its designed mechanism.
...Moving on
Next is the actual data on the hard drive. With a large database, the data can become segmented. This can really hurt performance, especially on operating systems that have no native or third-party defragmentation programs.
Okay, a novell approache...
Use an append / create table query that inserts the records from the source table into a new table using the sort order you want to use. This may help. (You will have to break the relations and rejoin them on the new table.)
We used to use this approach on large databases on Unix systems - pretty drastic - backup the database, delete the database, and then restore the database - to minimize fragmentation.
Richard