RE:Como Llenar un DataGrid????
Si lo que quieres es mantener tu código y prescindir del ADODC, debes utilizar una Clase con la propiedad DataSourceBehavior=1
'En Class
Private WithEvents cnn As ADODB.Connection
Private WithEvents rs As ADODB.Recordset
Private Str As String
Public Sub Update(): rs.Update: End Sub
Public Function Recordcount() As Integer: Recordcount = rs.Recordcount: End Function
Public Sub delete(): rs.delete: rs.Update: End Sub
Public Sub MoveLast(): rs.MoveLast: End Sub
Public Sub MoveFirst(): rs.MoveFirst: End Sub
Public Sub MoveNext(): rs.MoveNext: End Sub
Private Sub Class_Terminate()
rs.Close: cnn.Close
Set rs = Nothing: Set cnn = Nothing
End Sub
Public Sub dbOpen(ByVal strODBC As String, ByVal strSQL As String)
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=" & strODBC
cnn.Open
Set rs = New ADODB.Recordset
rs.Open strSQL, cnn, adOpenStatic, adLockOptimistic
End Sub
Private Sub Class_GetDataMember(DataMember As String, Data As Object)
Set Data = rs
End Sub
'En form
Private Sub Command1_Click()
'En donde Base es mi DSN y Sub la Tabla dentro de Base
Rec.dbOpen "Base", "SELECT * FROM Sub"
'Se enlaza el control DataGrid
Set DataGrid1.DataSource = Rec
End Sub
Espero que te sirva.