il vantaggio di usare il controllo datagrid è che hai la possibilità di aggirnare direttamente i dati, ma non supporta la gerarchia al contrario del controllo Hierarchical FlexGrid.
Comunque se tu non volessi che l'utente possa modificare i dati all'interno del datagrid ti basta modificare le proprietà del controllo.
x quanto riguarda ordirare i record a seconda di cosa l'utente scelglie quarda se ti può servire questo appunto preso in giro dalla rete.
ricordati che datagrid e Hierarchical FlexGrid vogliono ADO come connessione.
ciao

codice:
Ordinamento dei dati
Il controllo DataGrid non offre una funzionalità di default per ordinare i dati, ma grazie all’evento
HeadClick e alla proprietà Sort di ADO Recordset, l’ordinamento dei dati è un’operazione semplice che
richiede poche istruzioni.
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
' Ordina i dati in base alla colonna su cui è stato fatto clic.
Dim rs As ADODB.Recordset
Set rs = Adodc1.Recordset
If rs.Sort <> DataGrid1.Columns(ColIndex).DataField & " ASC" Then
' Ordina in sequenza crescente; questo blocco viene eseguito
' se i dati non sono ordinati, sono ordinati in base a un altro
' campo o sono ordinati in sequenza decrescente.
rs.Sort = DataGrid1.Columns(ColIndex).DataField & " ASC"
Else
' Ordina in sequenza crescente.
rs.Sort = DataGrid1.Columns(ColIndex).DataField & " DESC"
End If
' Non occorre aggiornare il contenuto del DataGrid.
End Sub
L’unico limite di questo approccio è che non funziona bene se la colonna contiene valori di
lookup.