I can't reproduce that. When I modify the code as below, the list I get in
the Immediate window is in the same order as defined in the table. Note that
I'm opening the recordset directly on the table. If you used a SQL statement
or a saved query, I would expect the fields to be returned in the order in
which they appear in the SQL statement or query.
BTW: In theory, the order of the columns should be irrelevant (in relational
theory, both the columns and rows of a relation are unordered) and usually
is in Access, where you can almost always refer to a field by its name
rather than by its ordinal number.
For lngLoop = 0 To .Fields.Count - 1
If .Fields(lngLoop).Name = strFieldName Then
lngResult = lngLoop
'Exit For
End If
Debug.Print .Fields(lngLoop).Name
Next lngLoop
--
Brendan Reynolds (MVP)
http://brenreyn.blogspot.com
The spammers and script-kiddies have succeeded in making it impossible for
me to use a real e-mail address in public newsgroups. E-mail replies to
this post will be deleted without being read. Any e-mail claiming to be
from brenreyn at indigo dot ie that is not digitally signed by me with a
GlobalSign digital certificate is a forgery and should be deleted without
being read. Follow-up questions should in general be posted to the
newsgroup, but if you have a good reason to send me e-mail, you'll find
a useable e-mail address at the URL above.