Retos Software-Chuchi



Services

Praxis-Rezepte

Kontakt
E-Mail
Home

























 
Innovative Verpflegung für Ihre Computer
Rezepte -> Microsoft Access -> Abfragen -> UNION-Abfragen
 

 
 

UNION-Abfragen

Mit UNION-Abfragen lassen sich in Access Datensätze aus mehreren Tabellen und Abfragen zu einem Resultat vereinigen. Voraussetzung dafür ist lediglich, dass die Anzahl Felder übereinstimmt, nicht aber deren Typ oder Länge.

Da Access im Abfrage-Entwurfsfenster UNION-Abfragen nicht unterstützt muss die Definition direkt im SQL-Fenster eingegeben werden. Das entsprechende Fenster kann in der Entwurfsansicht über den Menübefehl Abfrage/SQL spezifisch/Union aufgerufen werden:

Aufruf

Durch das Schlüsselwort UNION können zwei SELECT-Abfragen miteinander verbunden. Im folgenden Bild ist eine UNION-Abfrage abgebildet die eine Liste von Ländern aus den Tabellen tblDeutscheLaender und tblAndereLaender zusammenführt und als eine Liste ausgibt:

UNION-Abfrage

Wie dargestellt, können die Daten mit Hilfe von ORDER BY auch sortiert werden, wobei nur die Felder der ersten SELECT-Abfrage verwendet werden können.

sortierte Ausgabe

Natürlich lassen sich die Daten nich nur sortieren, GROUP BY oder WHERE-Bedingungen können ebenso verwendet werden.

Wie die grundsätzliche Syntax erkannen lässt, lassen sich auch mehrere UNION-Operatoren verwenden, es gibt keine Einschränkung auf zwei Tabellen oder Abfragen:

Menge1 UNION [ALL] Menge2 UNION [ALL] MengeN...

Menge kann eine Tabelle, eine bereits gespeicherte Abfrage, oder, wie oben gesehen, eine mit SELECT erzeugte Abfrage sein. Bei gespeicherte Tabellen oder Abfragen muss das Schlüsselwort TABLE vorangestellt werden. Obiges Beispiel lässt sich also auch folgendermassen zusammenführen:

TABLE tblDeutscheLaender
UNION
TABLE tblAndereLaender;

Grundsätzlich unterdrückt UNION alle mehrfach vorkommenden Datensätze. Mit dem Operator ALL lassen sich jedoch auch alle Datensätz anzeigen.

Keine Memo- oder OLE-Felder:
Beim zusammenführen von Datensätze mit UNION ist zu beachten, dass darin keine Memo- oder OLE-Objektfelder enthalten sein dürfen.

Primärschlüssel:
Primärschlüsselfelder stellen für UNION-Abfragen kein Problem dar. Es werden auch Datensätze mit identischen Werte in diesen Felder zusammengeführt. Dies ist aber nicht weiter schlimm, da UNION-Abfragen sowieso nicht editierbar sind. Die Tabellen werden nur abgefragt, und da das Ergebnis eine temporäre Kopie ist, bleiben die Basistabellen unverändert.

 

Beispiel:

Eine intressante UNION-Anwendung stellt folgendes Formular dar. Im Listenfeld wird zu der Länderliste einen zusätzlichen Eintrag "** Alle Länder ***" hinzugefügt, der dem Benutzer ermöglicht alle Karten gleichzeitig ausdrucken zu können. Da dieser Eintrag natürlich in keiner Tabelle abgelegt ist, wurde er mittels eine UNION-Abfrage hinzugefügt.

Beispiel

Bei der Erzeugung dieser Liste wurde mit einem kleinen Trick gearbeitet:

SELECT tblDeutscheLaender.ID, tblDeutscheLaender.Land FROM tblDeutscheLaender
UNION
SELECT tblAndereLaender.ID, tblAndereLaender.Land FROM tblAndereLaender
UNION
SELECT 0, "*** Alle Länder***" FROM tblDeutscheLaender
ORDER BY Land;

Die erste UNION-Verbindung führt die Tabellen tblDeutscheLaender und tblAndereLaender zusammen. Mit der zweiten UNION-Verbindung wird nun noch der Eintrag "*** Alle Länder***" hinzugefügt. Dabei liefert die dritte SELECT Abfrage einen Datensatz mit den Werten 0 und eben "*** Alle Länder***". Zwar kommen beide Werte nicht aus der angegebenen Tabelle tblDeutscheLaender, aber damit Access die Abfrage bearbeiten kann, muss eine Tabelle in der FROM-Klausel angegeben werden. Der Wert 0 wurde gewählt, da er in keiner der beiden Tabellen vorkommt. Damit lässt sich der Datensatz eindeutig idendifizieren.

 
 

 

Benötigen Sie Unterstützung oder weiterführende Informationen, gerne helfen wir Ihnen weiter, reden Sie doch einfach mit uns.

Die Informationen dieser Seite dürfen, gemäss unseren Nutzungsbestimmungen, kostenlos weiterverwendet werden.

 

Reto Maurer's Software-Chuchi
Seestrasse 26
CH-8802 Kilchberg-Zürich
Telefon: +41 79 635 47 31
E-Mail:info@software-chuchi.ch

 

   

URL: http://www.software-chuchi.ch/praxis/microsoft_access_abfragen_union_abfragen.php
Haben Sie technische Probleme oder Bemerkungen, wenden Sie sich an unseren Webmaster
© 2000-2004 Reto Maurer's Software-Chuchi. Alle Rechte vorbehalten.