我有一个电子表格可以转换为Access数据库。我有一列输入的客户名称,我想用我们的会计系统中适当的客户编号替换。从查询查询中更新查询
我创建了一个包含客户信息的表格和一个查询,显示需要将哪些ID插入到源数据中。我在找的是:
UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y
其中X和Y来自qryIDPerCustomer。
我可以使用循环吗?我如何参考另一个查询?
我有一个电子表格可以转换为Access数据库。我有一列输入的客户名称,我想用我们的会计系统中适当的客户编号替换。从查询查询中更新查询
我创建了一个包含客户信息的表格和一个查询,显示需要将哪些ID插入到源数据中。我在找的是:
UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y
其中X和Y来自qryIDPerCustomer。
我可以使用循环吗?我如何参考另一个查询?
在MS Access另一种可能性(从托默勒格答案借来的对象名称):
UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName
我想加盟将帮助您:
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
中的所有记录。
我不能让你的方法工作...这是有道理的,当我读了它,但它的代码刚刚获得不执行。 – NickSentowski 2009-05-05 16:19:03
ACE/Jet不支持ACE/Jet(即使在它自己的ANSI-92查询模式下),您的相关子查询语法(尽管是有效的标准SQL-92语法) – onedaywhen 2009-05-06 07:17:29