Access 查询在数据库中不存在的 table 上运行
Access query runs on table that does not exist in database
我想在新数据库中重新创建一些现有的 Access 查询,以便我可以稍微调整它们。我 运行 遇到的问题是,某些正在查询的 table 似乎不存在于当前数据库中。这些 table 都以 1 结尾。
例如INV_MTL_ITEM_LOCATIONS是数据库中导入的table,但是
INV_MTL_ITEM_LOCATIONS_1 正在被查询,即使它没有显示在左侧的 tables 面板中。
这是我不知道的某种复制功能吗?查询运行没有任何错误。
不,查询在别名 table 上运行。它实际上只是查询 INV_MTL_ITEM_LOCATIONS
使用 SQL,您可以为 table 创建一个别名。这在一次查询中两次查询相同的 table 时特别有用,但也常用于缩短查询。
您的查询可能如下所示:
SELECT something
FROM INV_MTL_ITEM_LOCATIONS AS INV_MTL_ITEM_LOCATIONS_1
Access 会在使用查询生成器时以及您多次添加相同的 table 时自动创建这些别名。删除非别名 table 时,另一个保持别名。
这是完全正常的,据我所知,这不是问题。
Erik 的回答完美地解释了这一点。
但为了详尽无遗,您实际上可以在不在当前数据库中的 table 上创建查询(也不是链接的 table)。
这是一个例子:
SELECT *
FROM History IN 'c:\test\mySecretBackend.accdb'
您也可以在设计视图中创建,只需
- 正在将查询的源数据库 属性 设置为
c:\test\mySecretBackend.accdb
- 点击显示 table
我想在新数据库中重新创建一些现有的 Access 查询,以便我可以稍微调整它们。我 运行 遇到的问题是,某些正在查询的 table 似乎不存在于当前数据库中。这些 table 都以 1 结尾。
例如INV_MTL_ITEM_LOCATIONS是数据库中导入的table,但是 INV_MTL_ITEM_LOCATIONS_1 正在被查询,即使它没有显示在左侧的 tables 面板中。
这是我不知道的某种复制功能吗?查询运行没有任何错误。
不,查询在别名 table 上运行。它实际上只是查询 INV_MTL_ITEM_LOCATIONS
使用 SQL,您可以为 table 创建一个别名。这在一次查询中两次查询相同的 table 时特别有用,但也常用于缩短查询。
您的查询可能如下所示:
SELECT something
FROM INV_MTL_ITEM_LOCATIONS AS INV_MTL_ITEM_LOCATIONS_1
Access 会在使用查询生成器时以及您多次添加相同的 table 时自动创建这些别名。删除非别名 table 时,另一个保持别名。
这是完全正常的,据我所知,这不是问题。
Erik 的回答完美地解释了这一点。
但为了详尽无遗,您实际上可以在不在当前数据库中的 table 上创建查询(也不是链接的 table)。
这是一个例子:
SELECT *
FROM History IN 'c:\test\mySecretBackend.accdb'
您也可以在设计视图中创建,只需
- 正在将查询的源数据库 属性 设置为
c:\test\mySecretBackend.accdb
- 点击显示 table