UPDATE mit Werten aus 2 Tables

Hallo,
Ich habe ein Problem mit einer sql query in Access. Und zwar habe ich folgende 2 Tabellen:

Table employee
ID (zahl),
costcenter (Text),
Name (Text)

Table employee_update
costcenter (Text),
Name (Text)

Die Tabelle employee_update enthält Datensätze, die auch in employee vorkommen. ich möchte dass er anhand des Namens die aktualisierten werte aus dem Feld employee_update.costcenter in die employee Tabelle übernimmt. Hierfür habe ich folgende query, nur leider quittiert sie mir Access mit dem Fehler:
„Operation muss eine aktualisierbare Abfrage verwenden“

UPDATE employee AS e SET e.costcenter = (SELECT CLng(employee\_update.costcenter) AS costcenter FROM employee\_update WHERE e.name = employee\_update.name);  

Die Datentypänderung habe ich eingesetzt, da employee_update.costcenter ursprünglich vom Typ Autowert ist. Der SELECT befehl ansich funktioniert gut, nur eben nicht in Verbindung mit dem UPDATE.
Bin für jeden Ansatz dankbar, fummle schon seit Stunden an dem problem…
gruß
NoR

Moin, NoR,

ich vermisse die Where-Klausel, die dem SQL sagt, welcher Satz geändert werden soll. Der Select liefert die Quelle für den Update, deshalb kannst Du in dessen Klausel nicht angeben, welcher Satz zu ändern ist. Das sieht mir nach Zirkelschluss aus, wenn im Select für die Quelle ein Bezug auf „e“ hergstellt wird :smile:))

Gruß Ralf

Hallo,
Ich habe ein Problem mit einer sql query in Access. Und zwar
habe ich folgende 2 Tabellen:

Table employee
ID (zahl),
costcenter (Text),
Name (Text)

Table employee_update
costcenter (Text),
Name (Text)

Die Tabelle employee_update enthält Datensätze, die auch in
employee vorkommen. ich möchte dass er anhand des Namens die
aktualisierten werte aus dem Feld employee_update.costcenter
in die employee Tabelle übernimmt. Hierfür habe ich folgende
query, nur leider quittiert sie mir Access mit dem Fehler:
„Operation muss eine aktualisierbare Abfrage verwenden“

Etwa so:

Update employee Inner Join employee_update On employee_update.[Name] = employee.[Name] Set Table employee.costcenter = employee_update.costcenter

Wobei DRINGEND der reservierte Name „Name“ vermieden werden sollte…

Gruß
Franz, DF6GL

Sorry dass ich erst jetzt antworte, hatte es ganz vergessen. Der Befehl funktioniert super, danke!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]