Aktualisieren Sie die Abfrage aus einer Suchabfrage
-
05-07-2019 - |
Frage
Ich habe eine Tabelle, die ich in einen Access DB konvertiere. Ich habe eine Spalte mit eingegebenen Kundennamen, die ich durch die entsprechende Kundennummer aus unserem Buchhaltungssystem ersetzen möchte.
Ich habe eine Tabelle mit den Kundeninformationen und einer Abfrage erstellt, die zeigt, welche ID in die Quelldaten eingefügt werden muss. Was ich suche ist:
UPDATE tblStarting_Data
SET CustomerID=x
WHERE TEMPCustomer=y
Wo x und y von QryidPercustomer kommen.
Kann ich eine Schleife verwenden? Wie beziehe ich mich auf eine andere Frage?
Lösung
Eine andere Möglichkeit in MS Access (Objektnamen, die von Tomalak Antwort ausgeliehen wurden):
UPDATE tblStarting_Data, qryIDPerCustomer
SET tblStarting_Data.CustomerID=qryIDPerCustomer.CustomerID
WHERE tblStarting_Data.TEMPCustomer=qryIDPerCustomer.CustomerName
Andere Tipps
Ich denke, ein Join wird Ihnen helfen:
UPDATE
tblStarting_Data AS sd
INNER JOIN qryIDPerCustomer AS qc ON sd.TEMPCustomer = qc.CustomerName
SET
sd.CustomerID = qc.CustomerID;
Dies kann auch als korrelierter Unterbild ausgedrückt werden (obwohl die Join-Syntax vorzuziehen ist):
UPDATE
tblStarting_Data
SET
CustomerID = (
SELECT CustomerID
FROM qryIDPerCustomer
WHERE CustomerName = tblStarting_Data.TEMPCustomer
)
Beide Anweisungen werden keine Schleife benötigt, sondern alle Datensätze in aktualisiert tblStarting_Data
in einem Schritt.