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
Database 当您知道列的名称时,是否查找表?_Database_Ms Access - Fatal编程技术网

Database 当您知道列的名称时,是否查找表?

Database 当您知道列的名称时,是否查找表?,database,ms-access,Database,Ms Access,我有一个数据库在访问一个难以置信的数量表。不幸的是,创建者使用了非常非描述性的名称,因此仅仅通过查看表的名称就基本上不可能猜出表的用途。我迫切需要找到一个包含某些数据的表,我非常确定我知道它的一些列的名称,或者至少知道列名称中包含的单词。基本上,我需要的是某种“在整个数据库的每个表中按列名搜索”,它显示包含特定列名的所有表 在我开始像猴子一样一个接一个地操作之前,有什么方法可以做到这一点吗?有一种方法可以找到所有具有特定列名的表,但它需要一些代码(而不是只运行查询) 首先,需要使系统表在数据库中

我有一个数据库在访问一个难以置信的数量表。不幸的是,创建者使用了非常非描述性的名称,因此仅仅通过查看表的名称就基本上不可能猜出表的用途。我迫切需要找到一个包含某些数据的表,我非常确定我知道它的一些列的名称,或者至少知道列名称中包含的单词。基本上,我需要的是某种“在整个数据库的每个表中按列名搜索”,它显示包含特定列名的所有表


在我开始像猴子一样一个接一个地操作之前,有什么方法可以做到这一点吗?

有一种方法可以找到所有具有特定列名的表,但它需要一些代码(而不是只运行查询)

首先,需要使系统表在数据库中“可见”。您没有提到正在使用哪个版本的MS Access,但是选项对话框应该允许一些内容

这将公开包含所有用户表名的表
MSysObjects

您可能希望遍历所有用户表,将这些表的名称传递到一些代码中,这些代码以
DAO.TableDef
对象的形式打开表,并检查相应
字段的属性


艾伦·布朗有。您可以根据需要对此进行自定义。

此过程将列出名称包含您提供的文本的任何列的表名和列名。结果将打印在即时窗口中(使用Ctrl+g组合键转到该窗口)

Public Sub-ListTablesWithColumnNamesContaining(ByVal pText作为字符串)
Dim数据库作为DAO.Database
将tdf调暗为DAO.TableDef
模糊fld为刀场
Set db=CurrentDb
对于以db.TableDefs为单位的每个tdf
对于tdf.字段中的每个fld
如果InStr(1,fld.Name,pText,vbTextCompare)>0,则
Debug.Print tdf.Name&“:”,fld.Name
如果结束
下一个fld
下一个tdf
设置fld=无
设置tdf=无
Set db=Nothing
端接头