Pergunta

Eu tenho uma planilha que estou convertendo em um banco de dados de acesso. Eu tenho uma coluna de nomes de clientes digitados que quero substituir pelo número apropriado do cliente do nosso sistema de contabilidade.

Eu criei uma tabela com as informações do cliente e uma consulta que mostra o que o ID precisa ser inserido nos dados de origem. O que estou procurando é:

UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y

Onde x e y vêm do qryidpercustomer.

Posso usar um loop? Como faço para fazer referência a outra consulta?

Foi útil?

Solução

Outra possibilidade no MS Access (nomes de objetos emprestados da resposta tomalak):

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

Outras dicas

Eu acho que uma junção irá ajudá -lo:

UPDATE 
  tblStarting_Data AS sd 
  INNER JOIN qryIDPerCustomer AS qc ON sd.TEMPCustomer = qc.CustomerName
SET 
  sd.CustomerID = qc.CustomerID;

Isso também pode ser expresso como um sub-quadro correlacionado (embora a sintaxe de junção seja preferível):

UPDATE 
  tblStarting_Data
SET 
  CustomerID = (
    SELECT  CustomerID 
    FROM    qryIDPerCustomer
    WHERE   CustomerName = tblStarting_Data.TEMPCustomer
  )

Não há necessidade de um loop, ambas as declarações atualizarão todos os registros em tblStarting_Data em um passo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top