我正在尝试从Access中的多个辅助表更新主表。我希望在一个查询的范围内使用多个SQL语句来执行此操作。请参阅下面的多个语句。有没有办法写这个来更新主表中的两个字段,并使用语言连接同一查询中的两个语句?我希望我不必创建60个更新查询来执行此操作。
UPDATE [Master Output Table], [Input table]
SET [Master Output Table].[Field 1] = [Input table]![Field 1]
WHERE ((([Input table]![Field 1])="AAAA") AND (([Master Output Table]![Field 1])="BBBB"));
UPDATE [Master Output Table], [Input table]
SET [Master Output Table].[Field 1] = [Input table]![Field 1]
WHERE ((([Input table]![Field 1])="CCCC") AND (([Master Output Table]![Field 1])="DDDD"));
答案 0 :(得分:1)
您还可以创建存储过程并只传递2个输入。然后你需要调用存储过程60次。您可以按如下方式存储过程
Create Procedure UpdateTable
(
@field1 VARCHAR(200),
@field2 VARCHAR(200)
)
As
Begin
UPDATE [Master Output Table], [Input table]
SET [Master Output Table].[Field 1] = [Input table]![Field 1]
WHERE ((([Input table]![Field 1])= @field1 ) AND (([Master Output Table]![Field 1])= @field2));
End
然后将其称为Execute UpdateTable 'AAA','BBB'
答案 1 :(得分:0)
由于其他一切看起来都是一样的,你应该能够或你的这里的条款:
UPDATE [Master Output Table], [Input table]
SET [Master Output Table].[Field 1] = [Input table]![Field 1]
WHERE ((([Input table]![Field 1])="AAAA") AND (([Master Output Table]![Field 1])="BBBB"))
OR
((([Input table]![Field 1])="CCCC") AND (([Master Output Table]![Field 1])="DDDD"))