Scott,
What do you mean it stops working after the first time? I just found that if you use DESCENDING on SET ORDER you must use ASCENDING to undo it. You also need a Grid.Refresh().
>I want to move the code to each column header, but when I run the code, it works the first time but won't after that unless I close the form down. I would like to be able to use the grid headers like the headers in Windows Explorer(sorting of files by date, name etc..) so I can sort on the field just by clicking the grid header of the desired column.