我需要读取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个辅助函数GetDescrip
和FieldTypeName
,这两个辅助函数都包含在该链接页面中。这是我数据库中一个表的
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