Atualizar consulta de uma consulta de pesquisa
-
05-07-2019 - |
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?
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.