Se non ti interessa il contenuto dei record della tabella ma solo: nome, tipo, size dei campi puoi aprire e leggere un recordset (vuoto) in questo modo:
codice:
    rs.Open "SELECT * from  codice where 0 = 1", cn, 1
    
    
    If Not rs.EOF Then
        i = 0
        For Each Fld In rs.Fields
        
          NomeC = rs.Fields.Item(i).Name
          TipoC = rs.Fields.Item(i).Type
          SizeC = rs.Fields.Item(i).DefinedSize
          i = i + 1
        Next
    End If
Questi sono alcuni valori che può assumere il Type:
'202 alfabetico
'3 intero lungo
'7 data ora
'5 precisione doppia
'3 contatore

Ciao