【问题标题】:Access query runs on table that does not exist in databaseAccess 查询在数据库中不存在的表上运行
【发布时间】:2017-09-13 13:48:17
【问题描述】:

我想在一个新数据库中重新创建一些现有的 Access 查询,以便我可以稍微调整它们。我遇到的问题是当前数据库中似乎不存在某些正在查询的表。这些表都以 1 结尾。

例如,INV_MTL_ITEM_LOCATIONS 是数据库中的导入表,但是 正在查询 INV_MTL_ITEM_LOCATIONS_1,即使它没有显示在左侧的表格面板中。

这是我不知道的某种类型的复制功能吗?查询运行没有任何错误。

【问题讨论】:

    标签: ms-access ms-access-2007


    【解决方案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'
      

      您也可以在设计视图中创建它,只需通过

      1. 将查询的源数据库属性设置为c:\test\mySecretBackend.accdb
      2. 点击显示表格

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多