PDA

Vollständige Version anzeigen : Wie finde ich heraus mit welchem Beziehungstyp meine Tabellenfelder verknüpft sind?


Scorpicor
26.09.2003, 13:34
Ich habe eine Skill-Datenbank auf Access2000
in der die Detailtabellen von den Steuertabellen mit 1:1 Beziehungen verknüpft sind.

Unterhalb der Detailtabellen befindet sich noch eine weitere Tabelle, die mit jeder Detailtabelle verknüpft ist.

Diese tabelle enthält Skill-Werte (1, 2, 3, 4, 5).

Diese Tabelle ist mit den Feldern "aller" Detailtabellen 1:n verknüpft.



Mein Problem:

Ich will über VB herausbekommen was eine Detailtabelle ist.

Function tabtype(table As String) As Boolean

Übergabewert: table = Tabellenname / Rückgabewert: 1:1 Beziehung ja/nein

Wie frage ich einen der beiden Beziehungstypen ab?

Oder geht es auch ganz anders?

jmc
27.09.2003, 07:37
Hi

Wie frage ich einen der beiden Beziehungstypen ab?

Oder geht es auch ganz anders?
Dazu müsste man eigentlich mal wissen, WOZU denn das ganze gut sein soll. Also wenn ich eine Datenbank habe, dann weiss ich doch eigentlich ganz genau aufgrund des Datenmodells, welche Tabellen wie zueinander in Beziehung stehen!

Im übrigen frage ich mich, ob deine Struktur wirklich optimal ist:
eine 1:1 Beziehung zwischen Person und Skill und dann x-fach 1:n zu einer weiteren Tabelle ??

Ich habe selbst eine Anwendung mit (unter anderem) Skill's drin, unten siehst du den Ausschnitt der Relationen der relevanten Tabellen ...

Gast
30.09.2003, 14:49
Danke für deine Bemühung "jmc"

Entschuldige bitte meine undeutliche Ausführung.

Die 1:1 Verknüpfungen habe ich, um einen Suchabfrage zu beschleunigen.
(ansonsten müsste ich eine einzige Tabelle mit ca. 200 Spalten komplett durchsuchen und dass nach nur ein bis ca. 10 Feldern.)

Also habe ich eine 1:1 - Struktur von "mehreren" übereinander befindlichen Tabellen gewählt.
(Hinweis: "Datenmodell (Teil).jpg" als Anhang an diese Nachricht.
1:N - Verknüpfungen zur Skill-Tabelle sind nicht
in der Grafik zu sehen)

Warum das alles?

Ich wenn eine neue Tabelle gebraucht wird,
muss diese angelegt werden.
Nachdem die Tabelle angelegt ist müssen in einer Steuertabelle die Key-Felder (alle Felder in der Tabelle gesetzt werden),
in einer Detailtabelle nur der "eine" Key

Darum muss ich wissen, welche Tabelle eine Steuertabelle und welche eine Detailtabelle ist.

Zumindest fällt mir keine andere Möglichkeit ein, es anders zu machen.

Nochmal Danke für die Mühe


Übrigens:
Ich benutze Access2k, VBA6.0, DAO3.6,
Windows2k

Scorpicor
30.09.2003, 14:52
Sorry, ich war nicht angemeldet

Hier kommt jetzt die Datei.


Gruß Scorpicor

jmc
30.09.2003, 15:08
Hi

Ich nehme an, dass du den eminenten Unterschied zwischen deiner Struktur und meiner siehst - und letztendlich erreiche ich genau dasselbe !! Aber vieeel einfacher ... und eben genau das:
...wenn eine neue Tabelle gebraucht wird,
muss diese angelegt werden.
fällt bei mir völlig weg, denn ein neuer Skill, oder eine neue Skill-Gruppe wird nur in der entsprechenden Code-Tabelle definiert! Auch das ist nicht nötig:
Nachdem die Tabelle angelegt ist müssen in einer Steuertabelle die Key-Felder (alle Felder in der Tabelle gesetzt werden) ...
Nehme an, dass du dann auch noch die Formulare entsprechend erweitern musst ...

Ich würde mir wirklich überlegen, ob du weiter an deinem Modell festhalten willst - mit all den negativen Aspekten.

Und wenn du doch schon so "fix" programmierst, dann weisst du doch, welches deine Steuer- und Detailtabelle ist ...

Scorpicor
30.09.2003, 15:16
:sos:
OK, du hast gewonnen.

Ich werde mir mein Datenmodell noch einmal durch den Kopf gehen lassen.
(Auch, wenn ich die Formulare nicht hätte erweitern müssen)

Nochmal's vielen Dank für die Hilfe! :)

jmc
30.09.2003, 15:34
Hi

einfach um es nochmals etwas zu verdeutlichen ein weiterer Screenshot:
habe die beiden Tabellen mit dem Skill-Typ und der Skill-Gruppe noch dazugenommen und eine Abfrage dazu, welche dir die wichtigsten Felder zeigt ...
(ob ein Skill-Typ UND eine Skill-Gruppe notwendig sind, liegt in deinem Ermessen, hier in meiner Anwendung war es so gewünscht ...)

UND: gewonnen hast eigentlich DU, denn du wirst sehen, dass es alles viel einfacher wird :top:
.

Scorpicor
02.10.2003, 09:38
OK,

Danke für deine Hilfe "jmc". :)

Ich glaub mit deinen Tips komme ich zurecht!



Gruß Scorpicor