This is the way that I accompolished this.
The datagird has a .HeadClick method. Build your code there. I don't have the exact code with me, but I think this is right or pretty darn close.
** First place your original Select statement for the ado control in a string variable, let's say strSelect.
dgTest.HeadClick(ByVal ColIndex As Integer)
strSort as String
strSort = " order by " &
dgTest.Columns(ColIndex).DataField
adoControlTest.RecordSource = strSelect & strSort
adoControlTest.Refresh
This will retrieve the datafield that is related to the column that you had selected. Then build your order by clause(or you can just put concatenate it to the end of the select statement). Then by making it the new recordsource select and refresh your adoControl you will get the sort recordset by the column that you selected.
Please let me know if this helps and if you have any questions or concerns.