2009-05-05 107 views
1

我有一個電子表格可以轉換爲Access數據庫。我有一列輸入的客戶名稱,我想用我們的會計系統中適當的客戶編號替換。從查詢查詢中更新查詢

我創建了一個包含客戶信息的表格和一個查詢,顯示需要將哪些ID插入到源數據中。我在找的是:

UPDATE tblStarting_Data 
SET CustomerID=x 
WHERE TEMPCustomer=y 

其中X和Y來自qryIDPerCustomer。

我可以使用循環嗎?我如何參考另一個查詢?

回答

2

在MS Access另一種可能性(從託默勒格答案借來的對象名稱):

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

我想加盟將幫助您:

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中的所有記錄。

+0

我不能讓你的方法工作...這是有道理的,當我讀了它,但它的代碼剛剛獲得不執行。 – NickSentowski 2009-05-05 16:19:03

+1

ACE/Jet不支持ACE/Jet(即使在它自己的ANSI-92查詢模式下),您的相關子查詢語法(儘管是有效的標準SQL-92語法) – onedaywhen 2009-05-06 07:17:29