1

AccessDBに変換するスプレッドシートがあります。会計システムの適切な顧客番号に置き換えたい、入力した顧客名の列があります。

顧客情報と、ソースデータに挿入する必要のあるIDを示すクエリを含むテーブルを作成しました。私が探しているのは:

UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y

XとYはqryIDPerCustomerから取得されます。

ループを使用できますか?別のクエリを参照するにはどうすればよいですか?

4

2 に答える 2

2

MS Access の別の可能性 (Tomalak の回答から借りたオブジェクト名):

UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName
于 2009-05-05T15:45:52.007 に答える
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ループは必要ありません。どちらのステートメントも、1つのステップですべてのレコードを更新します。

于 2009-05-05T15:42:58.190 に答える