Tabelle mit sich selbst verknüpfen?

Hallo,

ich bin gerade mit meiner ersten Datenbank beschäftigt (Access 2002 auf WIN XP).

Ich möchte nun folgendes erreichen:
Ich habe ein „tabKatalogNr“ mit den Feldern idPKatalogNr (Text) und mehreren Feldern. Nun kann es sein, dass zu einer KatalogNr mehrere „Unter-Nr.“ bestehen.
Zum Beispiel: Nr. 1 besteht aus Nr. 2 und Nr. 3.
Nr. 2 und Nr. 3 sind aber auch eigenständige KatalogNr.

Um diese Verknüpfung zu erstellen habe ich die „tabKatalogNr“ nochmals in die DB verknüpft (Externe Daten - Verknüpfen). Dadurch kann ich mit einer „tabKatalogNrVerkn“ mit den Feldern „idPKatalogNrVerkn“, „idSKatalogNrM“ und „idSKatalogNrT“ erreichen eine KatalogNr. mit sich selbst zu verknüpfen. Das „M“ steht für „Mutter“ und „T“ für „Tochter“ (=Verknüpfte).

Gibt es noch mehr sinnvolle Möglichkeiten oder wie löst man diese Problem elegant ohne später Probleme zu erhalten? Per VBA schließe ich aus, dass eine KatalogNr. mit sich selbst verknüpft wird (Nr. 1 nicht mit Nr. 1).

Schöne Grüße,

Oliver.

Moin, Oliver,

was Du da machst, verstehe ich nicht ganz. Mütter und Töchter anzugeben ist jedenfalls ein Kunstfehler, damit könntest Du bei Mutter A schreiben, sie hätte eine Tochter B und dort, diese hätte eine Mutter C.

Nimm die Ursprungstabelle, erweitere sie um ein Feld namens Ursprung und lege auf dieses Feld eine optionale (darf, muss aber nicht) Verknüpfung zum Schlüssel der Tabelle, fertig ist die Laube.

In Ursprung steht dann ein Verweis auf den Satz, der dem aktuellen Satz übergeordnet ist (die „Mutter“) oder halt nichts. Die Töchter suchst Du mit einem Select zusammen.

Gruß Ralf

Hallo Ralf,

wenn ich das nun richtig verstehe, kann ich die Tabelle nicht mit sich selbst (auch nicht über eine weitere Tabelle) verknüpfen.

Nimm die Ursprungstabelle, erweitere sie um ein Feld namens
Ursprung und lege auf dieses Feld eine optionale (darf, muss
aber nicht) Verknüpfung zum Schlüssel der Tabelle, fertig ist
die Laube.

Ich muss dann, wenn ich’s richtig verstanden habe, in das Feld „Ursprung“ die KatalogNr der Haupt-KatalogNr. eintragen. Jetzt ist mir nur nicht so ganz klar, wie ich das in einem Formular mit Unterformular darstellen kann. Ich möchte, wenn eine Katalognummer ausgewählt wird in einer „Tabelle“ dann die Unter-Katalog-Nr. dargestellt werden (wenn vorhanden). Vermutlich läuft das dann nur über eine zweite Abfrage?!?

Gruß,

Oliver.

Gruß,

Oliver.

Guten Morgen.

Man kann in Access eine Tabelle mit sich selbst verknüpfen (rekursive Beziehung). Das geht sowohl für 1:n als auch n:m … aber die Anwendungsfälle, in denen das sinnvoll ist, sind recht dünn gesät. Typischerweise nützt man so etwas für Hierarchiestrukturen (tbl_Mitarbeiter mit Fremdschlüssel Feld fky_Vorgesetzter wäre so ein Fall).

Dein Anwendungsfall scheint mir aber definitiv nicht der richtige für dieses Vorgehen zu sein; aus den Gründen, die Ralf schon nunn … oder aber beschreib nochmal genau, was der optische Nuckel deiner geplanten Struktur ist.

Gruß Eillicht zu Vensre

Moin, Oliver,

wenn ich das nun richtig verstehe, kann ich die Tabelle nicht
mit sich selbst (auch nicht über eine weitere Tabelle)
verknüpfen.

das hast Du falsch verstanden, der Verweis per Feld „Ursprung“ ist die Beziehung.

Ich muss dann, wenn ich’s richtig verstanden habe, in das Feld
„Ursprung“ die KatalogNr der Haupt-KatalogNr. eintragen.

Genau.

Jetzt ist mir nur nicht so ganz klar, wie ich das in einem
Formular mit Unterformular darstellen kann.

Formulare dienen der Bearbeitung von Sätzen, deshalb nimmt man zum Verknüpfen kein Unterformular1, sondern für das Verknüpfungsfeld „Ursprung“ ein Dropdown, in dem die möglichen Mütter angezeigt werden.

Ich möchte, wenn eine
Katalognummer ausgewählt wird in einer „Tabelle“ dann die
Unter-Katalog-Nr. dargestellt werden (wenn vorhanden).
Vermutlich läuft das dann nur über eine zweite Abfrage?!?

So ist es, die Abfrage wäre dann Grundlage für einen Report.

Gruß Ralf

1Auf dem Unterformular könnten nur die Töchter angezeigt werden, nicht die potentiellen Töchter - wo noch nichts vernüpft ist, ist die Verknüfungsmenge halt leer.

Guten Tag,

das hast Du falsch verstanden, der Verweis per Feld „Ursprung“
ist die Beziehung.

Das ist aber keine Beziehung, die als 1:n Beziehung erstellt werden kann?
Jedenfalls hab’ ich das dann richtig verstanden (Abfrage, Unterformular) - nach den ersten Versuchen heute morgen hat’s nämlich funktioniert.

Vielen Dank für deine kompetente Hilfe…

Schöne Grüße,

Oliver.

Hallo Eillicht,

Dein Anwendungsfall scheint mir aber definitiv nicht der
richtige für dieses Vorgehen zu sein; aus den Gründen, die
Ralf schon nunn … oder aber beschreib nochmal genau, was der
optische Nuckel deiner geplanten Struktur ist.

Der „optische Nuckel“ soll eben eine Katalog-Nummer mit eventuellen Unter-Katalog-Nr. abbilden. Die Unter-Katalog-Nr. können aber auch als eigene Katalog-Nr. verwendet werden.

Bin mit der Hilfe von Ralf schon ziemlich weit gekommen.

Gruß,

Oliver.

Moin, Oliver,

Das ist aber keine Beziehung, die als 1:n Beziehung erstellt
werden kann?

warum denn nicht? Geh in den Dialog „Beziehungen“, dort ziehst Du die fragliche Tabelle zweimal rein und verknotest nach Belieben.

Gruß Ralf

Hallo Ralf,

hmm, da hast du wohl recht. Das geht natürlich.
Stehe noch ganz am Anfang der Datenbankerstellung - daher hab ich sicherlich ab und zu Probleme, die eigentlich keine sind.

Vielen Dank für die Geduld.

Schöne Grüße aus Singapore (gerade auf Geschäftsreise),

Oliver.