我已经保存了SELECT查询。我需要创建更新查询以使用保存的选择查询中的值更新表字段。
我收到错误“操作必须使用可更新的查询”。 问题是保存的选择查询结果不包含主键。
UPDATE [table] INNER JOIN
[saved_select_query]
ON [table].id_field = [saved_select_query].[my_field]
SET [table].[target_field] = [saved_select_query]![source_field]);
我也尝试使用select子查询而不是内连接,但是同样的错误。
答案 0 :(得分:2)
也许DLookUp()可以解决问题:
UPDATE [table] SET
[target_field] = DLookUp("source_field", "saved_select_query", "my_field=" & id_field)
...或者,如果连接的字段是文本......
UPDATE [table] SET
[target_field] = DLookUp("source_field", "saved_select_query", "my_field='" & id_field & "'")
答案 1 :(得分:0)
我不确定我完全明白你在问什么。 如果您在询问使用内部联接执行更新时要使用的语法。
UPDATE tableAlias
SET Column = Value
FROM table1 as tableAlias
INNER JOIN table2 as table2Alias on tableAlias.key = table2Alias.key
答案 2 :(得分:0)
您的查询不正确,请尝试此操作。
UPDATE [table]
SET [table].[target_field] = [table2].
[source_field])
from (select *from
[table] INNER JOIN
[saved_select_query] a
ON [table].id_field =
a.[my_field] )
table2
答案 3 :(得分:0)
我使用以下方法开始工作:
UPDATE [table]
SET [table].[target_Field] = (SELECT [source_field] FROM [Saved_Select_Query]
WHERE [table].[id_field] = [Saved_Select_Query].[my_field])
您不能直接在UPDATE语句上使用JOIN,因此您需要在子查询中连接表。