1 Tabelle mit mehrern anderen verknüpfen (Access)

Ralf Berger, Donnerstag, 25.04.2019, 10:27 (vor 28 Tagen)

Hallo ans Forum
ich habe mal eine Frage zum Thema Tabellenbeziehungen

Ich möchte in einer Datenbank mehrere Tabellen A B und C mit einer weiteren D verbinden, in der ich Dokumente anhängen möchte.

( Ich weiss das man auch direkt Anhang Felder darein hänen kann und man mehrere Dokumente dort hinterlegen kann, will ich aber nicht so machen.
)

Die Tabellen A B und C sind untereinander bereits anderweitig verbunden. Nun sollen zu Datensätzen aus diesen Tabellen mit der Tabelle D, die Dokumenten-Anhänge enthalten soll, verbunden werden.

Jetzt würde ich dort in Tabelle D Felder für die IDs aus A B und C einfügen und mit je einer 1 zu N Beziehung mit A B und C verknüpfen.

Ich möchte dann Formulare bauen, wo aus A B und C jeweils die einzelen Datensätze mit den 1 zu N verknüpften Datensätzen aus D zu sehen sind ( Formular mit Unterformular. )

Dss Problem scheint zu sein, das ich bei Anlage eines neuen Datensatzes in D aus "Allen" Tabellen Auch Werte in dem jeweiligen ID Feld anlegen muss. Im Regelfall werden aber 2 von drei ID Feldern immer leer bleiben, weil ich ja den neuen Datensatz in D nur mit einem Datensatz aus A B oder C verknüpfen möchte.

Was kann ich hier tun um mein Ziel zu erreichen.

Eine Idee wäre natürlich zu A B und C jeweils eine eigene Tabelle "D" also D1 bis D3 anzulegen. Schön wäre das aber nicht

Dann könnte ich natürlich Felder für anhänge direkt in den Tabellen A B und C anlegen. Blöd ist das man zwar mehrere Dokumente in das Feld anhängen kann. Aber der Betrachter sieht immer nur 1 und man kann die Dokumente nicht typisieren.

Hat jemand bessere Ideen?
Vielen Dank
Ralf Berger

1 Tabelle mit mehrern anderen verknüpfen

Martin Asal @, Donnerstag, 25.04.2019, 11:42 (vor 28 Tagen) @ Ralf Berger

Hallo Ralf,

bei der Einführung des Feldtyps "Anlage" in Access 2007 hat MS in der Tat eine ganze Menge Mist gebaut. Vor allem, dass man mehrere Dateien in einem einzigen Datensatzfeld unterbringen kann. Deswegen kann ich deine Vorgehensweise durchaus verstehen. Vielleicht ist dir aber nicht bekannt, WIE Access intern mit Anlagefeldern umgeht: Es wird nämlich für jedes Anlagefeld eine versteckte, eigene Tabelle angelegt, und zwischen den beiden Tabellen besteht dann so eine Art 1:n-Beziehung. Ich selbst habe das zwar noch nicht versucht, aber vielleicht könntest du an diesem Punkt ansetzen? Zu dieser Tabelle findest du, indem du in der Systemtabelle "MSysObjects" danach suchst (aber um Himmels willen bloß nichts in dieser Tabelle ändern!)

Der "klassische" Weg zur Lösung deines Problems ist ein anderer: Tabelle D bekommt noch ein zusätzliches Feld, in dem "A", "B" oder "C" eingetragen wird, um die Tabelle zu bestimmen. Oder die Tabellen A, B, und C speichern ihre ID nicht als herkömmlichen Wert, sondern als Replikations-ID; dann ist die ID tabellenunabhängig eindeutig.

Martin

1 Tabelle mit mehrern anderen verknüpfen

Ralf Berger, Donnerstag, 25.04.2019, 13:59 (vor 28 Tagen) @ Martin Asal

HAllo Martin Danke für Deine Infos


Der "klassische" Weg zur Lösung deines Problems ist ein anderer: Tabelle D bekommt noch ein zusätzliches Feld, in dem "A", "B" oder "C" eingetragen wird, um die Tabelle zu bestimmen. Oder die Tabellen A, B, und C speichern ihre ID nicht als herkömmlichen Wert, sondern als Replikations-ID; dann ist die ID tabellenunabhängig eindeutig.


Leider sind deine Ausführungen für meine Wissens- und Erfahrungsverhältnisse zu wenig konkret

Ich verstehe das so, das ich in Tabelle D nur 2 Felder einbaue. Das eine Feld enthält sowas wie einen Wert der auf einen Datensatz aus einer der anderen Drei Tabellen zeigt und das zweite Feld eine Bezeichnung der Tabelle, wohin der Wert aus dem anderen Feld zeigt.

Aber wie müssen dann die Beziehungen zu diesem Konstrukt zwischen den Tabellen aussehen? Und wir bringe ich dem Formular Haupttabelle A B oder C mit Unterformular bei, das ich die richtigen Dokumente dazu anzeige. Ausserdem möchte ich auch in diesen 3 Formular jeweils für tabl A B und C neue Dokumente in D anlegen können.

Ich habe ReplikationsID gegoogelt und glaube verstanden zu haben, was es bedeutet. Aber ich verstehe nicht, wie mir das bei meinem Problem helfen kann.


Kannst Du mir hier weiterhelfen?

Danke
Ralf

1 Tabelle mit mehrern anderen verknüpfen

Martin Asal @, Donnerstag, 25.04.2019, 16:38 (vor 28 Tagen) @ Ralf Berger

Probiere mal folgende Abfrage aus:

 
SELECT "A", id FROM TabelleA
UNION 
SELECT "B", id FROM TabelleB
UNION 
SELECT "C", id FROM TabelleC;

Damit werden die IDs aus allen drei Tabellen in einer Lite zusammengeführt, und vor der ID steht noch, aus welcher Tabelle das kommt. Solange es sich beim ID um normale Zahlen handelt, tauchen sie ja u.U. mehrfach auf.

Wenn du anstelle von normalen Zahlen eine Replikations-ID nutzt (anderswo wird das GUID genannt), kannst du dir das sparen. Das ist Geschmackssache.

Martin

RSS-Feed dieser Diskussion
powered by my little forum