2008-12-18 73 views
2

我需要根据与另一个表的匹配更新一个字段(当前为空)。这应该很简单,但我的语法是错误的。Access的更新语法

在2005年SQLSERVER,语法将

UPDATE Facilities-NOID 
SET Facilities-NOID.ID = Facilities-ID.ID 
FROM Facilities-NOID, Facilities-ID 
WHERE [Facilities-ID].[Structure ID] = [Facilities-NOID].[Structure ID]; 

访问不喜欢从行,但如果我离开它,它希望每个ID。这应该很简单,但我在Update语法的MS帮助中没有看到它。

回答

1

是你想要什么:

UPDATE Facilities-NOID 
INNER JOIN Facilities-ID ON Facilities-NOID.[Structure ID] 
    = Facilities-ID.[Structure ID] 
SET Facilities-NOID.ID= Facilities-ID.ID 

你是根据Facilities-ID中出现的Structure ID上的匹配更新Facilities-NOID。

0

删除FROM子句中完全

UPDATE Facilities-NOID 
SET Facilities-NOID.ID = Facilities-ID.ID 
WHERE [Facilities-ID].[Structure ID] = [Facilities-NOID].[Structure ID]; 

(这是该查询生成器最终构建它们的方式),我认为这

+0

当我运行查询时,它会询问参数值。它需要Facilities-ID.ID。我希望它用另一个表中的值更新整个表。 – thursdaysgeek 2008-12-18 20:18:10

+0

你有没有试过在你的餐桌名称周围放置括号,如[Facilities-ID] .ID?我记不起名字中的Access/Jet不喜欢哪些字符,但是 - (与下划线_相对)可能被视为空格相同?我总是使用CamelCase,所以从不需要括号。 – 2008-12-19 01:46:51