Januar 20, 2021, 14:53:48

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


"Zusammengesetzte" Abfragen führen zu fehlenden Daten

Begonnen von Lightfood, Dezember 20, 2020, 13:18:40

⏪ vorheriges - nächstes ⏩

Lightfood

Hallo Zusammen!

Ich habe eine - wahrscheinlich sehr grundsätzliche - Frage zu Abfragen in Access. Ja, ich bin noch ziemlich neu im Thema, aber das hätte ich wahrscheinlich nicht erwähnen müssen... die Frage wird wohl für sich sprechen:

Ich bin beim Erstellen von "zusammengesetzten" Abfragen aus mehreren Tabellen (die teilweise zueinander in Beziehung stehen) darauf gestoßen, dass Datensätze nicht angezeigt werden, wenn nicht für alle Felder der Abfrage Daten vorhanden sind und frage mich nun, wie ich das vermeiden kann.

Beispiel: In meiner Abfrage werden Mitglieder eines Vereins abgefragt. Über die Mitgliedsnummer und die Vereinskennung füge ich verschiedene andere Informationen aus anderen Tabellen hinzu, die zum Teil in Beziehung zueinander stehen. Ich baue mir also diverse Informationen aus unterschiedlichen Tabellen zusammen, die mit den Mitgliedern in Verbindung stehen. In der Abfrage ist dann z. B. der Vorsitzende des Vereins enthalten, dem das Mitglied angehört und z. B. die Adresse des Vereinsheims, das zu dem Verein gehört, dem das Mitglied angehört. Die Beziehungen zwischen den Tabellen machen das ja möglich.

Und jetzt bitte nicht lachen: nach diversen Abfragen ist mir aufgefallen, dass Mitglieder in meinen Abfragen fehlen, wenn nicht alle Informationen bzw. Felder in der Abfrage Daten enthalten. Zum Beispiel fehlen alle Mitglieder, die zu einem Verein gehören, der gar keinen Vorsitzenden in der entsprechenden Tabelle enthält. Will sagen - wo in der Tabelle der Abfrage eigentlich leere Felder in einer Zeile erscheinen sollten, fehlt statt dessen die komplette Zeile (also das Mitglied). Irgendwie schwant mir, dass ich da eine ziemlich grundsätzliche Funktionsweise von Datenbanken/Abfragen nicht verstanden habe. Ich weiß aber nicht so richtig, wonach ich überhaupt suchen soll. Was ich möchte, ist, dass immer alle Mitglieder angezeigt werden und dort, wo keine dazugehörige Daten vorliegen, leere Felder erscheinen. Noch besser wäre es, wenn ich steuern könnte, was in den leeren Feldern steht (also z. B. beim Namen des Vorsitzenden "N.N." erscheint, wenn es keinen gibt.

Ich würde mich sehr freuen, wenn mir jemand einen Tipp geben könnte, wie ich mit diesem Problem grundsätzlich umgehen muss, denn dieses "Phänomen" - zumindest verstehe ich es so - würde ja immer auftreten, wenn ich Abfragen erstelle, die aus verschiedenen Tabellen zusammengefügt sind und in denen für irgendein Feld, das in der Abfrage enthalten ist, keine Daten in der dazugehörigen Tabelle beinhaltet.

Ich hoffe das Problem nachvollziehbar dargestellt zu haben und bedanke mich schon im Voraus ganz herzlich für eure Hilfe!

Euch allen einen wunderschönen Sonntag!

L.

MzKlMu

Hallo,
das Problem ist normal. Du kriegst nur Datensätze angezeigt, die in allen verknüpften Tabellen Daten haben.
Du kannst den Beziehungstyp ändern. Beziehungslinie doppelt klicken und dann den Typ (Left oder Right Join) ändern.

Im Regelfall ist es keine gute Idee möglichst viele Tabelle in einer Abfrage zusammenzuführen.
Die Darestellung mit Formularen und verknüpften Unterformularen ist besser.
Überhaupt, zeigt man Daten nicht in direkt in Abfragen an, sondern immer über Formulare.

Zeige mal ein Bild des Beziehungsfensters.
Gruß
Klaus

Lightfood

Dezember 20, 2020, 15:28:27 #2 Letzte Bearbeitung: Dezember 20, 2020, 15:36:58 von Lightfood
Hallo!

Zuerst einmal danke für die Antwort. Hier ist der Screenshot:



Ich benötige die Daten für einen ziemlich umfangreichen Serienbrief. Ich hole mir die Daten in Word dann via MergeField. Die Ehrenamtlichen sind dabei die Empfänger - die anderen Daten sind Informationen, die ich im Brief verwende (Wer ist der Kreisverbandsvorsitzender, welche Geschäftsstelle ist zuständig usw.). Daher der Umfang der Abfrage. Funktioniert ja auch super, wenn da nur nicht das geschilderte Problem wäre.

Die Tabellen der DB sind mit 1:n-Beziehungen verknüpft. In der Abfrage sind noch zwei Beziehungen hinzugekommen, um zwei andere Abfragen einzubinden.

Kannst Du mir bitte etwas genauer beschreiben, was Du mit "Ändern des Beziehungstyps" meinst?

ebs17

ZitatIn der Abfrage sind noch zwei Beziehungen hinzugekommen
Nö. Beziehungen sind eigene Datenbankobjekte.
In Abfragen verwendet man Verknüpfungen. Diese können sich an vorhandenen Beziehungen anlehnen - der Abfrageeditor ahmt die vorhandenen Beziehungen per Standard als Verknüpfungen nach. Man kann aber auch ganz anderes verknüpfen.

In der Abfrage kann man den Verknüpfungstyp ändern (INNER JOIN => LEFT JOIN / RIGHT JOIN, siehe SQL-Ansicht).
Der INNER JOIN erwartet per Definition, dass der verwendete Schlüssel jeweils in beiden beteiligten Tabellen vorhanden ist
Mit freundlichem Glück Auf!

Eberhard

Lightfood

Vielen Dank für den Tipp - die Umstellung des Verknüpfungstyp hat das Problem gelöst.

Einen schönen Tag zusammen!