В этом конкретном случае вы можете найти схемы ADO полезными.
Это перечислит поля и некоторые свойства для конкретной таблицы. Будьте осторожны с типами данных, вы можете не получить точное соответствие типам DAO. Вам понадобится ссылка Microsoft ActiveX Data Objects x.x Library, если вы не используете позднюю привязку.
Dim cn As New ADODB.Connection, cn2 As New ADODB.Connection
Dim rs As ADODB.Recordset, rs2 As ADODB.Recordset
Set cn = CurrentProject.Connection
Set rs = cn.OpenSchema(adSchemaTables, _
Array(Empty, Empty, Empty, "tablenamehere"))
While Not rs.EOF
Debug.Print rs!table_name; " desc= "; rs!Description
Set rs2 = cn.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, "" & rs!table_name & ""))
While Not rs2.EOF
Debug.Print " " & rs2!Column_Name
Debug.Print " " & rs2!Data_Type
Debug.Print " " & rs2!Description
Debug.Print " " & rs2!Is_Nullable
rs2.MoveNext
Wend
rs.MoveNext
Wend
rs.Close
Set cn = Nothing
Вы также можете посмотреть на вещи с другой стороны и получить список таблиц, которые содержат определенное поле.
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim strTempList As String
On Error GoTo Error_Trap
Set cn = CurrentProject.Connection
'Get names of all tables that have a column called <SelectFieldName>
Set rs = cn.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, Empty, SelectFieldName))
'List the tables that have been selected
While Not rs.EOF
'Exclude MS system tables
If Left(rs!Table_Name, 4) <> "MSys" Then
strTempList = strTempList & "," & rs!Table_Name
End If
rs.MoveNext
Wend
ListTablesContainingField = Mid(strTempList, 2)
От: http://wiki.lessthandot.com/index.php/ADO_Schemas
Stackoverflow имеет немало информации на эту тему: https://stackoverflow.com/search?q=%5Bms-access%5D+schema