Vorrei aiutarti, ma non mi sembra di aver capito.
Ti crei una tabella temporanea che ogni volta può cambiare nelle "quantità" di campi del record? E perchè vuoi utilizzare la funzione di recupera campi della griglia?
Non basterebbe disegnare nel tuo form una griglia e da codice assegnare il recordset della tabella appena creata in questo modo?
codice:
    Dim Rs As New ADODB.Recordset 

    ' qui crei la tua tabella, con i dati, poi
    If Rs.State = 1 Then Rs.Close
    Rs.CursorLocation = adUseClient
    Rs.Open "select * from tabellatemp", Db, adOpenKeyset, adLockOptimistic
    Set DataGrid1.DataSource = Rs
Ciao