使用 SQL 从另一个访问表更新Microsoft访问表



我正在尝试使用最终中的值更新原始表。我是SQL的新手,但是我已经在这里呆了两个小时,试图更改各种示例以满足我的需求。我正在使用 Access 2007。

UPDATE
  Original o
SET
  o.[Assest Description] = (
    SELECT f.[Assest Description] FROM Original o, Final f
    WHERE o.[Assest No] = f.[Assest No])
WHERE o.[Assest No] = Final.[Asset No]

我不确定您的select语句只返回一行。如果要使用 select 语句对表执行更新,则必须确保它只返回一行。

除此之外,您可以考虑下一个解决方案:

update 
   Original as o
   inner join Final as f on o.[Assest No] = f.[Assest No]
set
   o.[Assest Description] = f.[Assest Description]

请注意,仅当两个[Assest no]Original表和Final表中都是唯一键并且它们正确相关时,此操作才能正常工作。

试试这个

UPDATE o 
SET o.[Assest Description] =  f.[Assest Description]
FROM Original o, Final f WHERE o.[Assest No] = f.[Assest No]

访问非常挑剔。如果完全限定要更新的字段的名称,则可能会失败。如果您不完全限定联接表和字段,则可能会返回"不支持联接"。 我说可能,因为它可能略有不同的版本会做一些不同的事情。 至少这是我的经验。

所以我的答案是从创建→查询设计开始。选择两个表并使选择正常工作。 然后将其修改为更新查询,并对要从中更新的表中的字段的列进行更新。然后切换到 SQL 视图并将其用作模型以在 VBA 中构建查询。

我有一个语法正确的 SQL 语句,但在我这样做然后完全匹配限定和非限定字段名称之前,它声称不支持 join

最新更新