Если тебе нужно узнать структуру базы (список таблиц, тип и размер полей),
помести на форму ListBox и ListView, потом используй этот код:
 im StructureItem As ListItem
 im cnnCheckStructure As ADODB.Connection
 im rsCheckSchema As ADODB.Recordset
 im rsCheckStructure As ADODB.Recordset
Private Sub Form_Load()
 im OpenResult As Byte
 im clmnh As ColumnHeader
ListView1.ColumnHeaders.Clear
Set clmnh = ListView1.ColumnHeaders.Add(, , "Fields"
ListView1.ColumnHeaders(1).Width = 2000
Set clmnh = ListView1.ColumnHeaders.Add(, , "Type"
ListView1.ColumnHeaders(2).Width = 1000
Set clmnh = ListView1.ColumnHeaders.Add(, , "Size"
ListView1.ColumnHeaders(3).Width = 1000
OpenResult = OpenConnection(App.Path & "\Proba.mdb", cnnCheckStructure)
If OpenResult = 1 Then ReadingOfSchema
End Sub
Function OpenConnection(strConnectionString As String, cnnName As ADODB.Connection) As Byte
 im Mb As Integer
On Error GoTo ErrorLine
If cnnName Is Nothing = True Then
Set cnnName = New ADODB.Connection
With cnnName
.Mode = adModeShareDenyNone
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = strConnectionString
.Open
End With
Else
If cnnName.State <> adStateOpen Then
With cnnCheckStructure
.Mode = adModeShareDenyNone
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = strConnectionString
.Open
End With
Else
cnnName.Close
Set cnnName = Nothing
OpenConnection = OpenConnection(strConnectionString, cnnName)
End If
End If
OpenConnection = cnnName.State
Exit Function
ErrorLine:
MsgBox "Нераспознаваемый формат базы данных!", vbCritical, "Ошибка соединения!"
OpenConnection = 3
End Function
Sub ReadingOfSchema()
 im strCurrTableName As String
 im strNewTableName As String
Set rsCheckSchema = cnnCheckStructure.OpenSchema(adSchemaColumns)
 o While Not rsCheckSchema.EOF
If Left(rsCheckSchema!TABLE_NAME, 4) <> "MSys" And rsCheckSchema!TABLE_NAME <> "Запрос1" And Left(rsCheckSchema!TABLE_NAME, 1) <> "~" Then
strCurrTableName = rsCheckSchema!TABLE_NAME
If strCurrTableName <> strNewTableName Then
List1.AddItem rsCheckSchema!TABLE_NAME
strNewTableName = rsCheckSchema!TABLE_NAME
End If
End If
rsCheckSchema.MoveNext
Loop
End Sub
Sub ReadingOgStructure(TableName As String)
 im i As Long
Call RsOpen("SELECT * FROM " & TableName, rsCheckStructure, cnnCheckStructure)
For i = 0 To rsCheckStructure.Fields.Count - 1
Set StructureItem = ListView1.ListItems.Add()
StructureItem.Text = StrConv(rsCheckStructure.Fields(i).Name, vbProperCase)
StructureItem.SubItems(1) = DefinitionType(rsCheckStructure.Fields(i).Type)
StructureItem.SubItems(2) = rsCheckStructure.Fields(i).DefinedSize
Next i
End Sub
Function DefinitionType(lngType As Long) As String
 im strType As String
Select Case lngType
Case 3: strType = "Long"
Case 7: strType = "ate"
Case 202: strType = "String"
Case 2: strType = "Integer"
Case 11: strType = "Boolean"
Case 17: strType = "Byte"
Case 203: strType = "Memo или гиперссылка"
Case 4: strType = "Single"
Case 5: strType = "oble"
Case 17: strType = "Код репликации"
Case 131: strType = "Действительное"
Case 6: strType = "Денежный"
Case 72: strType = "Счетчик код репликации"
Case 205: strType = "Поле объекта"
End Select
 efinitionType = strType
End Function
Sub RsOpen(strSQL As String, rsName As ADODB.Recordset, cnnName As ADODB.Connection)
Set rsName = New ADODB.Recordset
rsName.ActiveConnection = cnnName
If rsName.State <> adStateOpen Then
rsName.CursorType = adOpenStatic
rsName.LockType = adLockOptimistic
rsName.Source = strSQL
rsName.Open
End If
End Sub
Private Sub List1_Click()
ListView1.ListItems.Clear
ReadingOgStructure (List1.Text)
End Sub