Access 查询在数据库中不存在的表上运行
Posted
技术标签:
【中文标题】Access 查询在数据库中不存在的表上运行【英文标题】:Access query runs on table that does not exist in database 【发布时间】:2017-09-13 13:48:17 【问题描述】:我想在一个新数据库中重新创建一些现有的 Access 查询,以便我可以稍微调整它们。我遇到的问题是当前数据库中似乎不存在某些正在查询的表。这些表都以 1 结尾。
例如,INV_MTL_ITEM_LOCATIONS 是数据库中的导入表,但是 正在查询 INV_MTL_ITEM_LOCATIONS_1,即使它没有显示在左侧的表格面板中。
这是我不知道的某种类型的复制功能吗?查询运行没有任何错误。
【问题讨论】:
【参考方案1】:不,查询在别名表上运行。它实际上只是查询 INV_MTL_ITEM_LOCATIONS
使用 SQL,您可以为表创建别名。这在一次查询中查询同一个表两次时特别有用,但也常用于缩短查询。
您的查询可能如下所示:
SELECT something
FROM INV_MTL_ITEM_LOCATIONS AS INV_MTL_ITEM_LOCATIONS_1
在使用查询生成器并且您多次添加同一个表时,Access 会自动创建这些别名。删除非别名表时,另一个保持别名。
这是完全正常的,据我所知,从来没有问题。
【讨论】:
【参考方案2】:埃里克的回答完美地解释了这一点。 但要详尽无遗,您实际上可以对不在当前数据库中的表(也不是链接表)创建查询。 这是一个例子:
SELECT *
FROM History IN 'c:\test\mySecretBackend.accdb'
您也可以在设计视图中创建它,只需通过
-
将查询的源数据库属性设置为
c:\test\mySecretBackend.accdb
点击显示表格
【讨论】:
以上是关于Access 查询在数据库中不存在的表上运行的主要内容,如果未能解决你的问题,请参考以下文章
关闭使用附加查询打开的 MS Access laccdb 文件
在Access 2010中运行追加查询时出现“表已存在”错误