我有一个电子表格,我正在转换为Access数据库。我有一列输入的客户名称,我想用我们的会计系统中的相应客户编号替换。

我创建了一个包含客户信息的表,以及一个显示需要将哪些ID插入源数据的查询。我正在寻找的是:

UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y

X和Y来自qryIDPerCustomer。

我可以使用循环吗?如何引用其他查询?

有帮助吗?

解决方案

MS Access中的另一种可能性(借用Tomalak回答的对象名称):

UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName

其他提示

我认为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 中的所有记录。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top