我有一个电子表格,我正在转换为Access数据库。我有一列输入的客户名称,我想用我们的会计系统中的相应客户编号替换。
我创建了一个包含客户信息的表,以及一个显示需要将哪些ID插入源数据的查询。我正在寻找的是:
UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y
X和Y来自qryIDPerCustomer。
我可以使用循环吗?如何引用其他查询?
答案 0 :(得分:2)
MS Access中的另一种可能性(借用Tomalak回答的对象名称):
UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName
答案 1 :(得分:1)
我认为JOIN会帮助你:
UPDATE
tblStarting_Data AS sd
INNER JOIN qryIDPerCustomer AS qc ON sd.TEMPCustomer = qc.CustomerName
SET
sd.CustomerID = qc.CustomerID;
这也可以表示为相关的子查询(尽管最好使用连接语法):
UPDATE
tblStarting_Data
SET
CustomerID = (
SELECT CustomerID
FROM qryIDPerCustomer
WHERE CustomerName = tblStarting_Data.TEMPCustomer
)
不需要循环,两个语句都会一步更新tblStarting_Data
中的所有记录。