In general, there is a way to do this but it is a pain in the toches. (Pardon my Yiddish!)
Here is an outline....
Phase 1: Write VBA code to build a table of field names for you.
Basically, step through each tabledef in the tabledefs collection. For each tabledef, step through each field in the tabledefs.fields collection. Store the result in a recordset that has two fields: TableName and FieldName.
Phase 2: This new table will probably have included itself. Take out the two records it stored for itself. Now write a query that sorts this new table by TableName and FieldName, alphabetically.
Phase 3: Open the names query as a recordset. Step through the records of this query. For each new table name, create a new querydef. OK, now, here is where you get "ugly". The way to add fields to a querydef is through SQL. So you step through all the fields for this table, adding them to a string separated by commas. Suppose the field names were A, AA, AAA, AAB, etc.
You would successively concatenate "A," then "AA,", then "AAA," then "AAB", etc. until you reached the last field of the table. WARNING: If the names can contain spaces or oddball characters, remember to include [] around the names. So you would add "A," but "[A A]," if the field were [A A].
Now you have a string that looks like
"A,[A A],AA,AAA,AAB,....,ZZZ,"
Remove the trailing comma (it should be the last character) using the LEFT function on the string (with Len(string)-1 to remove that dangling comma.)
Now complete the operation by tacking on
"SELECT " & {field-list-string} & " FROM {table-name} ;"
and store this in the querydef's SQL property. Save this querydef as "FLDSRT_{table-name}" and step to the next one. When your loop is done, you have a bunch of new queries you can go back to use for exporting.
Now if the fields have to also be sorted in ascending order in the same order as the names apply, the string would become
"SELECT " & {field-list-string} & " FROM {table-name} ORDER BY " & {field-list-string} & ";"
But there might be a problem with sorting by that many fields in the case of the 170-field table. So you had better warn your folks that you have limits in Access regarding how far you can take the sort operation. I think you can't sort on more than a total of 255 characters at a time, in aggregate. That is, if you try to sort on four text fields of 64 bytes each, that is 256 characters in a sort, which is illegal.
Does this idea help you?