Hi John
i dont know if in this long thread you have a solution to your asked problem.
can read this post , it can maybe can help you: (see the code *2*)
http://yousfi.over-blog.com/2016/01/vfp-grid-cosmetics-partii.htmlit uses field() function (independent of the hardocode field name) and bindevent function to achieve a sorted grid by clicking on any header (if index exists).if you change the recordsource simply reninitialize the field(i) tags.
to empty the recordsource use : grid.recordsource="" before filling it with a new recordSource.