conqusto puoi caricare un msflexgrid
codice:
Private Sub Caricagriglia()

'RECORDSET APERTO
If Source = "" Then
   MsgBox "Inserire almeno un dato", vbCritical, App.Path
   Unload Me
   Exit Sub
End If

Set GrsContatti = New ADODB.Recordset
    GrsContatti.Open Source, Csource


Lriga = 1
    
   Do While GrsContatti.EOF = False
        
        Me.FXG_Griglia.Rows = Me.FXG_Griglia.Rows + 1
        Me.FXG_Griglia.Row = Lriga
            
             Me.FXG_Griglia.Col = 0
             Me.FXG_Griglia.Text = GrsContatti("codid")
             
             Me.FXG_Griglia.Col = 1
             Me.FXG_Griglia.Text = GrsContatti("NOMINATIVO")
             
             Me.FXG_Griglia.Col = 2
             Me.FXG_Griglia.Text = GrsContatti("datanascita")
             
             Me.FXG_Griglia.Col = 3
             Me.FXG_Griglia.Text=GrsContatti("luogonascita")            
                  
              
          Lriga = Lriga + 1
        Me.FXG_Griglia.Row = Me.FXG_Griglia.Row + 1
   
       GrsContatti.MoveNext   
       
   Loop
    GrsContatti.Close
End Sub
Private Sub settaVariabili()   
        
         
        Me.FXG_Griglia.Col = 0
        objContatti.LcodID = Trim(Me.FXG_Griglia.Text)
        Me.out_LcodID = Me.FXG_Griglia.Text
        'variabile controllo
        
        Me.FXG_Griglia.Col = 1
        objContatti.Snominativo = Trim(Me.FXG_Griglia.Text)
        
        Me.FXG_Griglia.Col = 2
        objContatti.DataNascita = Trim(Me.FXG_Griglia.Text)
        
        Me.FXG_Griglia.Col = 3
         objContatti.SLuogoNascita = Trim(Me.FXG_Griglia.Text)
         
        Me.FXG_Griglia.Col = 4
        objContatti.Sindirizzo = Trim(Me.FXG_Griglia.Text)
        
               
        
End Sub
fai bene att3enzione e leggi mlto piano xche mi sa che ti ho spedito
troppo codice
allora
prima setto le colonne, poi carco una riga alla volta
fino ad esaurimento rige del database

con un po' di pazienza riuscirai anche a caricare pezzi che voui tu che nn sono di un database