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中运行追加查询时出现“表已存在”错误

用户自己的架构的表上的SELECT权限被拒绝

Access 中 SQL 链接表上的 UPDATE 查询的“操作必须使用可更新查询”

为啥此查询在 ODBC 表上运行但在本地表上运行时会失败?

在运行非常缓慢的 SQL 的非常大的表上删除查询