É isso ai camarada, quanto ao erro pode ser por isto mesmo, faça o teste utilizando uma tabela que não possua campos em branco, ou ponha um trataerro.
Obs: cuidado com a ligação do controle ADODC com o banco de dados por ele mesmo, como vc disse, pois quando fizar o setup e for instalar em outro micro o componente não encontrará o banco de dados, e colocando o código que te passei não dará erro pois o controle encontrará o banco através da conexão.
Tente esta rotina para eliminar o erro
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
On Error GoTo Trataerro
Adodc1.Recordset.Sort = Adodc1.Recordset.Fields(ColIndex).Name
Trataerro:
With Err
If .Number <> 0 Then
.Number = 0
End If
End With
End Sub