Вопрос

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

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

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 за один шаг.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top