Abfrage erstellen - Alter Hut oder doch ein Trick notwendig? (Access)

Sebastian Sch. @, Montag, 25.11.2019, 14:09 (vor 15 Tagen)

Hallo zusammen,

ich bin auf eine Aufgabe gestoßen, bei der ich mir fast sicher bin, dass ich sie aus Datenbanksicht bereits richtig angelegt habe, jedoch fällt es mir schwer dazu eine Abfrage zu erstellen, die mich zum gewünschten Ziel bringt. Vermutlich gibt es da draußen auch bereits eine passende Lösung. Mein Hauptproblem ist, dass mir adäquate Suchbegriffe fehlen, um einigermaßen in die richtige Richtung zu kommen.

Hier mein Anliegen im Detail:
Ich habe eine Tabelle mit Datumseinträgen und einer Aufgabenbeschreibung. Eine Art To-Do-Liste mit Fälligkeitsdatum. Den Einzelnen To-Do-Einträgen wollte ich Auslöser zuordnen. Diese können aber unterschiedlicher Natur sein. In Frage kommen beispielsweise Kunden, Artikel, Rechnungen oder auch andere To-Dos selber. Von der Datenbankstruktur habe ich daher einen Verweis eingerichtet, der in den unterschiedlichen Objekten (Artikel, Rehnung, ...) auf ein To-Do verweist. Damit hat das jeweilige To-Do selber keine Kenntnis über seinen Auslöser.
Als Abfrage für einen Objekttyp (z.B. Artikel) ist mir das Vorgehen klar und ganz klassisch. Ich scheitere jedoch daran eine Abfrage zu generieren, die mir die To-Dos nach Fälligkeitsdatum auflistet UND den (oder ggf. die mehreren) Auslöser unabhängig von dessen Typ benennt.
Mir fallen ein paar Wege ein, die nach einer möglichen Lösung riechen. Diese riechen aber gleichzeitig auch nach umständlich oder dummen laienhaften Lösungen.
Das Problem scheint mir so grundsätzlicher Natur, dass ich mir sicher bin, dass dafür bereits etwas vorgesehen ist, dass ich vermutlich nur nicht kenne.

Hat hierzu jemand einen Hinweis für mich? Besten Dank im Voraus.

Abfrage erstellen - Alter Hut oder doch ein Trick notwendig?

Martin Asal @, Montag, 25.11.2019, 16:48 (vor 15 Tagen) @ Sebastian Sch.

Hallo Sebastian,

Was du brauchst ist eine Union-Abfrage. Ich gehe jetzt mal davon aus, dass deine Tabellen alle ein Feld namens "ToDo" haben.

 
SELECT "Kunden" AS Herkunft, ToDo
FROM Kunden
 
UNION
 
SELECT "Artikel" AS Herkunft, ToDo
FROM Artikel;

Martin

Abfrage erstellen - Alter Hut oder doch ein Trick notwendig?

Sebastian Sch. @, Montag, 25.11.2019, 17:28 (vor 15 Tagen) @ Martin Asal

Besten Dank für die schnelle Antwort.

Da hatte ich dann wohl einen Denkfehler. Den Ansatz über eine Unionsabfrage hatte ich nach ersten Überlegungen damals verworfen. Mir schien es nicht elegant, händisch festzulegen, welche Tabellen durchsucht werden sollen, da bei Anlegen weitere Objektarten, die auf die To-Dos verweisen, ich auch die Anfrage immer parallel anpassen muss.
Ich hatte daher spekuliert, dass Access irgendeine elegante Lösung bereithält, die die Verknüpfungen zwischen meiner "To-Do"-Tabelle und den anderen Objekten nach hält.
Wenn ich so genau drüber nachdenke, ist dieses Wunschdenken aber nicht allgemein möglich. Lediglich, wenn es genau für diesen Falle eine Art Indizierung der angelegten Verknüpfungen gäbe, wäre das automatisch möglich.

Dann mache ich mich einmal an Werk. Danke.

Abfrage erstellen - Alter Hut oder doch ein Trick notwendig?

Martin Asal @, Dienstag, 26.11.2019, 08:36 (vor 15 Tagen) @ Sebastian Sch.

Natürlich könntest du die Union-Abfrage auch per VBA erstellen. Dabei kannst du entweder alle Tabellen durchlaufen, ob es ein Feld namens "ToDo" gibt. Oder, falls es entsprechende Beziehungen gibt, eben anhand der Beziehungen. Aber nur weil du so ein Vorgehen vielleicht für "eleganter" hälst, heißt das nicht, dass es auch empfehlenswert wäre. Ich würde nämlich davon ausgehen, dass so eine VBA-Lösung weitaus weniger performant sein dürfte.

Martin

RSS-Feed dieser Diskussion
powered by my little forum