我需要读取Access 2003数据库中100多个表的属性,并将这些详细信息(表名,字段名,类型和大小)写入文件中以作进一步的文档编制。

我从网络搜索中找不到任何有关读取字段属性的信息,只是字段值...

有人可以告诉我我必须声明哪些记录集变量(和语法)才能遍历数据库中的所有表,并从每个表中提取字段名称,类型和大小吗?我会将结果写入文本文件,但我想我可以解决! :)

在解决之前,我一直处于停滞状态。我花了一天的时间手动记录两个表格。一些表有超过100个字段。

最佳答案

带有这些选项的Database Documenter向导应该以最少的工作为您提供所需的内容。



如果这种方法不能令人满意,则可以使用自定义VBA代码收集所需的信息。您可以通过遍历DAO TableDefs集合来检索数据库中表的名称。



Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
    ' ignore system and temporary tables
    If Not (tdf.name Like "MSys*" Or tdf.name Like "~*") Then
        Debug.Print tdf.name
    End If
Next
Set tdf = Nothing
Set db = Nothing


要获取所需的字段详细信息,请将Allen Browne的TableInfo() function ...替换文件写入语句替换为Debug.Print语句。请注意,该函数使用2个辅助函数GetDescripFieldTypeName,这两个辅助函数都包含在该链接页面中。

这是我数据库中一个表的TableInfo()即时窗口输出示例---我认为它包含所需的字段信息。

TableInfo "foo"
FIELD NAME    FIELD TYPE    SIZE          DESCRIPTION
==========    ==========    ====          ===========
id            AutoNumber     4
MyNumber      Long Integer   4
MyText        Text           255
bar           Long Integer   4
==========    ==========    ====          ===========


调整完函数后,请从上述示例的For Each tdf循环中调用它,并将其每个tdf.name馈入:

TableInfo tdf.name

10-06 06:12