Supportnet / Forum / Datenbanken
Access 2 Tabellen vergleichen
Frage
Also ich möchte 2 tabellen vergleichen. Die 1 Tabelle soll immer weitergeführt werden. Also man vergleicht die erste Zeile die eine bestimmte Spalte(Nummer) hat mit allen Zeilen von Tabelle 1 aber nur auch hier mit der Spalte Nummer. Wenn sie gleich sind soll nciths passieren wenn die Nummer nicht gefunden werden soll die ganze Zeile in Tabelle 1 eingefügt werden.
Beisspiel
Tabelle 1 Tabelle 2
Auftrag Datum AEWert Nummer Auftrag Datum AEWert Nummer
500 19.2.08 3 3003 500 19.2.08 3 3003
504 19.2.08 5 3004 504 19.2.08 6 3004
503 19.2.08 6 3006 505 19.2.08 2 3007
Tabelle 1
Auftrag Datum AEWert Nummer
500 19.2.08 3 3003
504 19.2.08 5 3004
503 19.2.08 6 3006
505 19.2.08 2 3007
Tabelle 2 ist dann egal
Würde mich freuen wenn mir einer helfen kann, Habe nämlich keine Ahnung^^.
[*][sup][i]
*Threadedit* 10:42:21, 18.04.2008
Admininfo: Thread verschoben. Bitte beachte [u][url=https://supportnet.de/faqsthread/840]FAQ 2, #2[/url][/u] bei deiner nächsten Anfrage.[/i][/sup]
Antwort 1 von Marie
Also Du machst zuerst eine Abfrage zur Inkonsistenzsuche:
Diese Abfrage nenne ich jetzt mal qryNR_nur_inTab2.
Die Abfrage qryNR_nur_inTab2 enthält exakt die Datensätze - und zwar immer aktualisiert - deren Nummer in Tabelle 2, aber nicht in Tabelle 1 ist. Genau diese Datensätze willst Du nun an Tabelle 1 anfügen, also machst Du eine weitere Abfrage, eine sogenannte Anfügeabfrage, mit der du alle Datensätze aus der Abfrage qryNR_nur_inTab2 an Tabelle 1 anhängst:
Den Code fügst Du in die SQL-Ansicht jeweils einer neuen Abfrage ein. Du musst natürlich entsprechend die Felder und Tabellen und die Abfrage auf die Du zugreifst exakt so nennen, wie sie entsprechend bei Dir heissen.
Das wars, wenn Du noch Fragen hast bitte melden.
Gruß Marie
SELECT DISTINCTROW Tabelle2.*
FROM Tabelle2 LEFT JOIN Tabelle1 ON Tabelle2.Nummer = Tabelle1.Nummer
WHERE (((Tabelle1.Nummer) Is Null));
Diese Abfrage nenne ich jetzt mal qryNR_nur_inTab2.
Die Abfrage qryNR_nur_inTab2 enthält exakt die Datensätze - und zwar immer aktualisiert - deren Nummer in Tabelle 2, aber nicht in Tabelle 1 ist. Genau diese Datensätze willst Du nun an Tabelle 1 anfügen, also machst Du eine weitere Abfrage, eine sogenannte Anfügeabfrage, mit der du alle Datensätze aus der Abfrage qryNR_nur_inTab2 an Tabelle 1 anhängst:
INSERT INTO Tabelle1 ( Datum, Nummer, AEWert, Auftrag )
SELECT qryNR_nur_inTab2.Datum, qryNR_nur_inTab2.Nummer, qryNR_nur_inTab2.AEWert, qryNR_nur_inTab2.Auftrag
FROM qryNR_nur_inTab2;Den Code fügst Du in die SQL-Ansicht jeweils einer neuen Abfrage ein. Du musst natürlich entsprechend die Felder und Tabellen und die Abfrage auf die Du zugreifst exakt so nennen, wie sie entsprechend bei Dir heissen.
Das wars, wenn Du noch Fragen hast bitte melden.
Gruß Marie
Antwort 2 von beta
Danke Danke!!
Hat mir serh geholfen, einfach super Erklärung!!
Hat mir serh geholfen, einfach super Erklärung!!

