Обновить запрос из запроса поиска - PullRequest
1 голос
/ 05 мая 2009

У меня есть электронная таблица, которую я конвертирую в базу данных Access. У меня есть колонка с напечатанными именами клиентов, которую я хочу заменить на соответствующий номер клиента из нашей системы бухгалтерского учета.

Я создал таблицу с информацией о клиенте и запросом, показывающим, какой идентификатор необходимо вставить в исходные данные. То, что я ищу, это:

UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y

Где X и Y происходят от qryIDPerCustomer.

Могу ли я использовать цикл? Как мне ссылаться на другой запрос?

Ответы [ 2 ]

2 голосов
/ 05 мая 2009

Еще одна возможность в MS Access (имена объектов заимствованы из ответа Томалака):

UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName
1 голос
/ 05 мая 2009

Я думаю, что 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 за один шаг.

...