Aktualisierungs query mit übernahme der Werte aus anderer tabelle

02/02/2015 - 10:35 von eliasjebabli | Report spam
Hallo zusammen,

folgendes Problem:

Ich habe eine Tabelle tbl_Adr in der sich Adressdaten befinden, u.a auch das Land.
Zudem habe ich eine Tabelle tbl_Land in der alle Lànder aufgelistet sind und eine Spalte ID_Land die jedem Land eine eindeutige ID zuweist.

Ich hab nun aus einer Excel Tabelle meine Datensàtze in tbl_Adr importiert.
Jedoch folgendes Problem dabei.

In tbl_Adr stehen momentan in der Spalte ID_Land die wirklichen Làndernamen, ich möchte dort aber die jeweilige ID stehen haben, die in der tbl_Land dem jeweiligen Land zugewiesen wurde. Dazu möchte ich also eine Abfrage erstellen die
die Eintràge in tbl_Adr.ID_Land mit der der tbl_Land.Land vergleicht und wenn sie gleich sind den Wert tbl_Land.ID_Land eintràgt.

Bisher habe ich nur folgende query erstellt:

UPDATE tbl_Adrdetails SET ID_Land = "1"
WHERE (ID_Land="Andorra");

Dies ist mir aber zu mühsam da ich 60 verschiedene Lànder habe und nicht für jedes Land eine query erstellen möchte.

Ich hoffe dies ist soweit verstàndlich.

Gruß Elias
 

Lesen sie die antworten

#1 Karl Donaubauer
02/02/2015 - 11:56 | Warnen spam
Hallo!

Eliasjebabli ha scritto:
...
Ich habe eine Tabelle tbl_Adr in der sich Adressdaten befinden, u.a auch das Land.
Zudem habe ich eine Tabelle tbl_Land in der alle Lànder aufgelistet sind und eine Spalte ID_Land die jedem Land eine eindeutige ID zuweist.

Ich hab nun aus einer Excel Tabelle meine Datensàtze in tbl_Adr importiert.
Jedoch folgendes Problem dabei.

In tbl_Adr stehen momentan in der Spalte ID_Land die wirklichen Làndernamen, ich möchte dort aber die jeweilige ID stehen haben, die in der tbl_Land dem jeweiligen Land zugewiesen wurde. Dazu möchte ich also eine Abfrage erstellen die
die Eintràge in tbl_Adr.ID_Land mit der der tbl_Land.Land vergleicht und wenn sie gleich sind den Wert tbl_Land.ID_Land eintràgt.

Bisher habe ich nur folgende query erstellt:

UPDATE tbl_Adrdetails SET ID_Land = "1"
WHERE (ID_Land="Andorra");

Dies ist mir aber zu mühsam da ich 60 verschiedene Lànder habe und nicht für jedes Land eine query erstellen möchte.



tbl_Adr = tbl_Adrdetails?

Wenn ja, dann versuche mal (natürlich immer mit einer Kopie der Daten),
die beiden Felder tbl_Adrdetails.ID_Land und tbl_Land.Land in einer
Abfrage zu verknüpfen. Als SQL ca.

UPDATE tbl_Adrdetails
INNER JOIN tbl_Land
ON tbl_Adrdetails.ID_Land = tbl_Land.Land
SET tbl_Adrdetails.ID_Land = tbl_Land.ID_Land

Das wird allerdings nur ausführbar d.h. aktualisierbar sein, wenn es
starke Indizes gibt z.B. einen eindeutigen Index auf tbl_Land.Land.

Wenn's klappt, solltest/musst du nachher evtl. den Datentyp von
tbl_Adrdetails.ID_Land von Text auf Long àndern, damit das verknüpfbar wird.

Servus
Karl
*********
Access FAQ: http://www.donkarl.com
Access Lobby: http://www.AccessDevelopers.org

Ähnliche fragen