Mettre à jour la requête à partir d'une requête de recherche
-
05-07-2019 - |
Question
J'ai converti une feuille de calcul en une base de données Access. J'ai une colonne de noms de clients dactylographiés que je souhaite remplacer par le numéro de client approprié de notre système de comptabilité.
J'ai créé une table avec les informations client et une requête indiquant quel ID doit être inséré dans les données source. Ce que je cherche, c'est:
UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y
D'où proviennent X et Y de qryIDPerCustomer.
Puis-je utiliser une boucle? Comment référencer une autre requête?
La solution
Autre possibilité dans MS Access (noms d’objets empruntés à Tomalak answer):
UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName
Autres conseils
Je pense qu'un JOIN vous aidera:
UPDATE
tblStarting_Data AS sd
INNER JOIN qryIDPerCustomer AS qc ON sd.TEMPCustomer = qc.CustomerName
SET
sd.CustomerID = qc.CustomerID;
Ceci peut également être exprimé comme une sous-requête corrélée (bien que la syntaxe de la jointure soit préférable):
UPDATE
tblStarting_Data
SET
CustomerID = (
SELECT CustomerID
FROM qryIDPerCustomer
WHERE CustomerName = tblStarting_Data.TEMPCustomer
)
Plus besoin de boucle, les deux instructions mettront à jour tous les enregistrements de tblStarting_Data ??code> en une seule étape.