Access: 2 Tabellen zusammenführen

Hallo,
ich habe in Access zwei Tabellen. In Tabelle 1 gibt es mehr Datensätze als in Tabelle 2. Tabelle 1 enthält die Versand-Postleitzahl und die Empfangspostleitzahl. Tabelle 2 hat Zusatzinformationen (die Entfernung in km zwischen EINIGEN Versand-Postleitzahlen und Empfangspostleitzahlen), die ich an Tabelle 1 hinzufügen möchte. Da ich die Entfernungen nicht für alle PLZ-Kombinationen aus Tabelle 1 habe, wird es in Tabelle 1 anschließend Datensätze mit Entfernungsangabe und ohne Entfernungsangabe geben.

Als Auswählabfrage kann ich die Infos zusammenbringen.

SELECT TAB1.*, TAB2.ENTFERNUNG
FROM TAB2 INNER JOIN TAB1 ON (TAB2.E-PLZ = TAB1.[E-PLZ]) AND (TAB2.E-LAND = TAB1.[E-Land]) AND (TAB_2.V-PLZ = TAB1.[V-PLZ]) AND (TAB2.V-LAND = TAB1.[V-Land]);

Wie schaffe ich es aber, die Information Entfernung wirklich an TAB 1 anzufügen?
Ist das eine Aktualisierungsabfrage oder eine Anfügeabfrage?

UPDATE TAB1 INNER JOIN TAB2 ON (TAB2.E-PLZ = TAB1.[E-PLZ]) AND (TAB2.E-LAND = TAB1.[E-Land]) AND (TAB1.[V-PLZ] = TAB2.V-PLZ) AND (TAB1.[V-Land] = TAB2.V-LAND) SET;

ist es auf jeden Fall nicht.

Vielen Dank für Eure Hilfe!

Hi,

UPDATE TAB1 INNER JOIN TAB2 ON (TAB2.E-PLZ = TAB1.[E-PLZ]) AND
(TAB2.E-LAND = TAB1.[E-Land]) AND (TAB1.[V-PLZ] = TAB2.V-PLZ)
AND (TAB1.[V-Land] = TAB2.V-LAND) SET;
ist es auf jeden Fall nicht.

Stimmt auffallend, weil die Abfrage nix tut. Es müsste heißen:
blabla SET TAB1.ENTFERNUNG=TAB2.ENTFERNUNG;
Da wird klar, dass das nicht geht, weil TAB1 das Feld ENTFERNUNG gar nicht enthält.
Du musst also erst das Feld in der Entwurfsansicht definieren (oder bei etwas Sportsgeist mit einer Datendefinitionsabfrage).

Alternativ kannst du natürlich die Daten aus TAB1 mit ner Anfügeabfrage rüberziehen und anschließend TAB2 statt TAB1 verwenden.

Oder du wandelst die genannte Auswahlabfrage in eine Tabellenerstellungsabfrage um und verwendest zukünftig das Ergebnis.

Wie auch immer
Machs gut
Thomas

Passe,
Bisher habe ich solch partielle Anfügungen immer über ein Hidden Userform gelöst. Das hat die vollständige Tabelle Datensatz für Datensatz eingelesen, nach dem gemeinsamen Suchkriterium den Datensatz in der anderen Tabelle gesucht und von dort dann die fehlenden Daten eingefügt. Ne einfache Abfrage dazu muss es geben, kenne ich aber nicht.
Wäre schön, wenn Du mir bei Erfolg die Abfrage mal liefern könntest.

Hallo Alles_wird_gut !

Ich gehe mal davon aus, das in Tabelle 1 alle Sätze enthalten sind. Also brauchst du keine Anfügeabfrage.
Du machst einen einfachen Update :
Update Tab1 JOIN TAB2 on( xxxx) SET.

Da du ja nur die kleiner Menge updaten willst ist kein inner Join nötig.

Gruß

Chris.

Gute Seite :
http://www.sql-und-xml.de/sql-tutorial/update-aktual…

Hallo,
weshalb um Himmels Willen soll denn der Inhalt der Tab2 an Tab1 angefügt werden? Es ist ja gerade die Stärke einer Datenbankanwendung, dass nur so viel wie nötig Speicherplatz benötigt wird.
Wenn die Zusatzinformationen in Tab1 angefügt werden sollen, dann richte zusätzliche Datenfelder ein und schreib sie einfach da hinein, wenn auch bei einigen Datensätzen die Felder dann leer bleiben. So sparst Du Dir die komplette Tab2, hast aber eine Tab1, die wie ein Schweizer Käse aussieht.
Die Informationen fügst Du einfach mit einer Auswahlabfrage zusammen, wie Du es oben ja bereits beschrieben hast. Am besten teil mir einmal die Datenfelder der beiden Tabellen mit, dann kann ich auch einen Vorschlag machen, wie man die am besten miteinander verknüpft und abfragt.
Wenn die Daten von Tab2 unbedingt an Tab1 angefügt werden sollen, geht das natürlich nur mit einer Anfügeabfrage.
Gruß

Hallo,
der einfachste (und schnellste) Weg wäre, die Auswahlabfrage in eine Tabellenerstellungsabfrage umzuwandeln und eine neue Tabelle erstellen

Ist das jetzt gelöst?

Ich denke, „Alles_wird_gutXXX“ kennt die Begriffe nicht so und „anfügen“ war nicht so gemeint: Er will wohl „bei jedem Datensatz die Entfernung anfügen“, also neues Feld Entfernung und dieses Feld der Tabelle aktualisieren.

Da es hier anscheinend aktuell redundante Daten gibt, ist das Zusammenführen in eine Tabelle und Löschen der nicht mehr benötigten Tabelle in meinen Augen äußerst sinnvoll: Aktuell kommen wohl Datensätze mit Kombinationen aus V-PLZ und E_PLZ in beiden Tabellen identisch vor.

Eine etwas genauere Beschreibung wäre hilfreich, welche Felder ganz exakt (Bezeichnungen) es in welcher der beiden Tabellen gibt.

Hallo,
Vielen Dank für Eure Unterstützung!

Ich habe das Problem jetzt so gelöst.

Auswahlabfrage inkl. Right Join:
SELECT TAB1.*, TAB2.ENT, TAB2.MAUTENTF INTO TAB3
FROM TAB2 RIGHT JOIN TAB1 ON (TAB2.LAND_AB = TAB1.[V-Land]) AND (TAB2.PLZ_AB = TAB1.[V-PLZ]) AND (TAB2.LAND_AN = TAB1.[E-Land]) AND (TAB2.PLZ_AN = TAB1.[E-PLZ]);

Und dann eine Tabellenerstellungsabfrage.

Achja, und ich bin weiblich. :wink:

Viele Grüße

Hallo,
Vielen Dank für Eure Unterstützung!

Ich habe das Problem jetzt so gelöst.

Auswahlabfrage inkl. Right Join:
SELECT TAB1.*, TAB2.ENT, TAB2.MAUTENTF INTO TAB3
FROM TAB2 RIGHT JOIN TAB1 ON (TAB2.LAND_AB = TAB1.[V-Land]) AND (TAB2.PLZ_AB = TAB1.[V-PLZ]) AND (TAB2.LAND_AN = TAB1.[E-Land]) AND (TAB2.PLZ_AN = TAB1.[E-PLZ]);

Und dann eine Tabellenerstellungsabfrage.

Achja, und ich bin weiblich. :wink:

Viele Grüße

.

Hallo,
Vielen Dank für Deine Unterstützung!

Ich habe das Problem jetzt so gelöst.

Auswahlabfrage inkl. Right Join:
SELECT TAB1.*, TAB2.ENT, TAB2.MAUTENTF INTO TAB3
FROM TAB2 RIGHT JOIN TAB1 ON (TAB2.LAND_AB = TAB1.[V-Land]) AND (TAB2.PLZ_AB = TAB1.[V-PLZ]) AND (TAB2.LAND_AN = TAB1.[E-Land]) AND (TAB2.PLZ_AN = TAB1.[E-PLZ]);

Und dann eine Tabellenerstellungsabfrage.

Viele Grüße

Hallo,
Vielen Dank für Deine Unterstützung!

Ich habe das Problem jetzt so gelöst.

Auswahlabfrage inkl. Right Join:
SELECT TAB1.*, TAB2.ENT, TAB2.MAUTENTF INTO TAB3
FROM TAB2 RIGHT JOIN TAB1 ON (TAB2.LAND_AB = TAB1.[V-Land]) AND (TAB2.PLZ_AB = TAB1.[V-PLZ]) AND (TAB2.LAND_AN = TAB1.[E-Land]) AND (TAB2.PLZ_AN = TAB1.[E-PLZ]);

Und dann eine Tabellenerstellungsabfrage.

Viele Grüße

Hallo,
der einfachste (und schnellste) Weg wäre, die Auswahlabfrage
in eine Tabellenerstellungsabfrage umzuwandeln und eine neue
Tabelle erstellen

Ich gehe davon aus, dass Du zu jedem Startpunkt mehrere Zielpunkte und somit mehrere Datensätze in der zweiten Tabelle hast, die sich wiederum auf jeweils einen Datensatz in der ersten Tabelle beziehen. Hier ist Dein Ansatz mit einer zweiten Tabelle schon richtig. Schlag vor, Du wählst den Weg über ein verbundenes Unterformular. Die Verbindung ist immer die Start-PLZ.

Hoffe, ich konnte Dir helfen.

Viele Grüße
Thomas