Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何查看Microsoft Access 2013表的元数据?_Ms Access_Ms Access 2013_Database Metadata - Fatal编程技术网

Ms access 如何查看Microsoft Access 2013表的元数据?

Ms access 如何查看Microsoft Access 2013表的元数据?,ms-access,ms-access-2013,database-metadata,Ms Access,Ms Access 2013,Database Metadata,如何查看Microsoft Access 2013表的元数据(数据字典)?在Access 2007及更高版本(2007、2010、2013)中,“数据库文档管理器”位于“分析”组中的“数据库工具”选项卡下。使用VBA,DAO.TableDef对象可以帮助您: dim db作为DAO.Database,tbl作为DAO.TableDef 将f作为DAO.Field 设置db=currentdb()'连接到当前数据库 '循环数据库中的每个表 对于db.tableDefs中的每个tbl debug.p

如何查看Microsoft Access 2013表的元数据(数据字典)?

在Access 2007及更高版本(2007、2010、2013)中,“数据库文档管理器”位于“分析”组中的“数据库工具”选项卡下。

使用VBA,DAO.TableDef对象可以帮助您:

dim db作为DAO.Database,tbl作为DAO.TableDef
将f作为DAO.Field
设置db=currentdb()'连接到当前数据库
'循环数据库中的每个表
对于db.tableDefs中的每个tbl
debug.print“表名:”,tbl.name
'通过表中的每个字段循环
对于tbl.字段中的每个f
debug.print“字段:”,f.名称
下一个f
下一个tbl
这过于简化了,但您可以获得表及其字段的所有属性

检查:

如果要检索access数据库元数据,这可能会有帮助:

每个microsoft access数据库都包含一个名为
MSysObjects
的系统表。此表包含此数据库元数据。您可以获取具有创建日期和上次更新日期的所有对象

可以使用以下查询列出Access数据库中的所有对象:

SELECT Name, DateCreate, DateUpdate,   
 iif(LEFT(Name, 4) = 'MSys','System Table', 
 iif(type = 2,'System Object',  
 iif(type = 3,'System Object', 
 iif(type = 8,'System Object',  
 iif(type = 4,'Linked Table (ODBC)', 
 iif(type = 1,'Table',  
 iif(type = 6, 'Linked Table (MsAccess/MsExcel)', 
 iif(type = 5,'Query',  
 iif(type = -32768,'Form', 
 iif(type = -32764,'Report',  
 iif(type=-32766,'Macro', 
 iif(type = -32761,'Module',  
 iif(type = -32756,'Page',  
 iif(type = -32758,'User','Unknown')))))))))))))) as ObjectType 
  FROM MSysObjects WHERE LEFT(Name, 1) <> '~' 
选择名称、日期创建、日期更新、,
iif(左(名称,4)=‘MSys’,‘系统表’,
iif(类型=2,“系统对象”,
iif(类型=3,“系统对象”,
iif(类型=8,“系统对象”,
iif(类型=4,“链接表(ODBC)”,
iif(类型=1,'表格',
iif(类型=6,“链接表(MsAccess/MsExcel)”,
iif(类型=5,“查询”,
iif(类型=-32768,'Form',
iif(类型=-32764,'报告',
iif(类型=-32766,'Macro',
iif(类型=-32761,'Module',
iif(类型=-32756,'Page',
iif(类型=-32758,'User','Unknown'俬俬俬俬俬俬俬俬俬)作为对象类型
从左侧的MSysObjects(名称,1)“~”
如果不想显示系统对象,可以将以下条件添加到where子句中:

AND LEFT(Name, 4) <> 'MSys' AND Type IN (1, 5, 4, 6,  -32768, -32764, -32766, -32761,-32756,-32758)
和左(Name,4)“MSys”并键入(1,5,4,6,-32768,-32764,-32766,-32761,-32756,-32758)

我还创建了一个从access数据库检索数据的应用程序,并为此创建了一个新的数据库