1.2k Aufrufe
Gefragt in Datenbanken von saschawittke Mitglied (121 Punkte)
hi leute,

irgendwo hab ich es mal gelesen, doch ich finds leider nimmer:

ausgangssituation:
eine tabelle in welche ich versicherungsfälle erfasse; pro reklamation
wird eine schadensfallKATEGORIE (z.b. rücktritt, abbruch, krankheit,
gepäck) ausgewählt und in einem anderen nachschlagefeld der
genaue GRUND
in dem feld GRUND stehen alle denkbaren gründe drin, die bei allen
möglichen KATEGORIEN auftreten können

frage:
gibt es eine möglichkeit, dass in GRUND nur die gründe aufgeführt
werden, die basierend auf der auswahl in KATEGORIE, dieser
kategorie zugeordnet sind?

lieben dank für eure hilfe
sascha

3 Antworten

0 Punkte
Beantwortet von
hi sascha,

probiers mit ner neuen qry, benenne sie z.b. "GRUND nach KATEGORIE"
in der entwurfansicht die tabellen "GUND" und "KATEGORIE" einfügen, dann die namensfelder aus den tabellen in zeile feld in der reihenfolge "KATEGORIE" und danach "GRUND" einfügen.
jetzt nur noch in den kriterien die jeweilige kategorie und in grund die dazugehörigen werte ausfiltern.
Wenn du diese qry kopierst und abspeicherst kannst du sie mit jeder neuen "KATEGORIE"-filterung neu abspeichern.
Diese arbeit hast du dann nur einmal und danach immer die einträge im richtigen feld.
Ist jetzt allerdings von mir ungetestet, sollte aber funzen ohne vba ;-)

Gruß
Hans
0 Punkte
Beantwortet von saschawittke Mitglied (121 Punkte)
hallo hans,

besten dank für die schnelle rückmeldung.

also ich habe nun eine abfrage mit den tabellen KATEGORIE und GRUND
in der ersten spalte steht in der zeile feld einmal KATEGORIE aus der
tabelle kategorie und in der zweiten spalte das selbe mit GRUND

...nun der nicht ganz klare weitere verlauf
in den kriterien habe ich nun die einzelnen gründe pro kategorie aufgeführt
das ergebnis ist, dass ich pro kategorie nun die möglichen gründe sehe

doch was passiert wenn ich gründe ergänze?
dann muss ich auch die abfrage ändern oder hab ich da was falsch
verstanden?

besten dank
sascha
0 Punkte
Beantwortet von fritz-oehr Einsteiger_in (19 Punkte)
Hi sascha,
da hilft eine neue Zwischentabelle vor der Abfrage besser ;-)
In diese trägst du nur die jeweiligen Primär-IDs als Fremdschlüssel ein.
Also in der Entwurfsansicht der neuen tbl zuerst die Primär-ID mit Felddatentyp "AutoWert", dann die Primär-ID der tbl "KATEGORIE" mit Felddatentyp "Zahl" und Feldgröße "Long Integer".
Das gleiche in der dritten Spalte der neuen tbl mit Primär-ID von tbl "GRUND" – auch hier als Felddatentyp "Zahl" mit Feldgröße "Long Integer".
Nach Namensgebung und abspeichern dieser neuen tbl mußt du die Fremdschlüsselfelder dieser tbl mit den Primär-IDs der Haupttabellen verknüpfen. Das geht über das Fenster "Beziehungen" unter "Datenbanktools". Voraussetzung ist jeweils eine eigen ID für jede "KATEGORIE" und auch für jeden "GRUND".
Richtest du diese Beziehungen mit "referentieller Integrität" und als "1:n-Beziehung" ein.
Jetzt kannst du eine qry wie in AW1 erstellen. Als erste tbl im qry-entwurf kommt nun noch diese neue tbl dazu.
Anschließend ziehst du nacheinander folgende Feldnamen in deine qry:

1.) Primär-ID der neuen Zwischen-tbl
2.) Fremdschlüssel 1 aus Zwischen-tbl für "Kategorie"
3.) Feldnamensfeld des Kategorienamen aus tbl "Kategorie"
4.) Fremdschlüssel 2 aus Zwischen-tbl für "Grund"
5.) Feldnamensfeld des Kategorienamen aus tbl "Grund"

Durch die referentielle Integrität erhält jede Kategorie und jeder Grund eine eindeutige ID, die immer wieder in allen Abfragen genutzt wird und es dadurch keine Dopplungen gibt.
Du trägst jetzt also pro Kategorie in Spalte Fremdschlüssel von Grund die Primär ID des zutreffenden Grundes ein und hast dann den Grundnamen in der Namensspalte.
(Für jeden Grund einer Kategorie muss natürlich auch wieder ein neuer Datensatz mit gleicher Kategorie-Nr. angelegt werden)
Diese Abfrage umfasst dann deinen Gesamtbestand und ist jederzeit in beiden Feldern erweiterbar.
Ausfilterungen von einzelnen Kategorien mit den Gründen oder auch umgekehrt sind dadurch kein Problem mehr.
Bei Unklarheiten einfach weiter fragen

Gruß
Fritz
...