Beziehungen mit mehreren Kriterien
In einer Beziehung mit mehreren Kriterien wird die Anzahl der Abgleichsfelder erhöht, womit sich die Kriterien vermehren, die FileMaker Pro beurteilt, bevor Bezugsdatensätze erfolgreich verknüpft werden. FileMaker Pro vergleicht die Werte jedes Abgleichsfelds auf beiden Seiten der Beziehung in der Reihenfolge, in der die Felder erscheinen. Dies ist ein sogenannter UND-Vergleich. Für einen erfolgreichen Vergleich muss jedes Abgleichsfeld einen entsprechenden Wert im selben Datensatz in der anderen Tabelle finden.
Diese Beziehung wird mit den folgenden Kriterien definiert:
Tabelle |
Feldname |
Kommentar |
TabelleA |
TextfeldA |
Abgleichsfeld für TextfeldB und ZahlenfeldB |
|
ZahlenFeldA |
Abgleichsfeld für TextfeldB und ZahlenfeldB |
TabelleB |
TextfeldB |
Abgleichsfeld für TextfeldA und ZahlenfeldA |
|
ZahlenfeldB |
Abgleichsfeld für TextfeldA und ZahlenfeldA |
Gemäß den Kriterien in dieser Beziehung entspricht ein Datensatz in TabelleA mit dem TextFeldA-Wert „Blau“ und dem ZahlenFeldA-Wert „123“ nur den Datensätzen in TabelleB, in denen sowohl TextfeldB als auch ZahlenFeldB die Werte „Blau“ bzw. „123“ enthält. Wenn TextFeldA und TextFeldB übereinstimmende Werte haben, aber ZahlenFeldA und ZahlenFeldB nicht, liefert die Beziehung keine Bezugsdatensätze.
Tabelle |
Datensatznummer |
Feldname |
Wert |
Bezugsdatensatz? |
TabelleA |
1 |
TextfeldA |
Blau |
Ja |
|
2 |
TextfeldA |
Blau |
Nein |
|
3 |
TextfeldA |
Rot |
Nein |
TabelleB |
1 |
TextfeldB |
Blau |
Ja |
|
2 |
TextfeldB |
Rot |
Nein |
|
3 |
TextfeldB |
Blau |
Ja |
Erstellen einer Beziehung mit mehreren Kriterien
Definieren Sie in diesem Beispiel eine Beziehung mit mehreren Kriterien mithilfe einer Datenbank, die folgende drei Tabellen enthält:
- „Ausstattung“ zum Speichern von verleihbarem Ausstattungsbestand
- „Kunden“ zum Speichern von Kundennamen und Adressen
- „Catering-Positionen“ zum Speichern eines Datensatzes für jeden Verleihvorgang einschließlich AusstattungsID, KundenID und Eventdatum
Diese Datenbank verfolgt den Verleih von Ausstattungen und zeigt alle Ausleihvorgänge pro ausgewähltem Kunden und ausgewähltem Datum an.
- Die Beziehung mit mehreren Kriterien besteht zwischen den Tabellen „Kunden“ und „Catering-Positionen“. Erstellen Sie diese Tabellen mit den folgenden Feldern:
- Definieren Sie im Dialogfeld „Beziehung bearbeiten“ die KundenID und das Eventdatum als Abgleichsfelder in der Beziehung zwischen den Tabellen „Kunden“ und „Catering-Positionen“.
- Stellen Sie in der Tabelle „Kunden“ das Feld „KundenID“ auf die automatische Eingabe einer fortlaufenden Nummer ein, damit jeder Datensatz in der Tabelle „Kunden“ eine eindeutige Kennnummer besitzt.
- Aktivieren Sie in der Tabelle „Catering-Positionen“ die Option Datensatzerstellung in dieser Tabelle mit dieser Beziehung zulassen.
Die Tabellen im Beziehungsdiagramm sehen wie folgt aus:
- Fügen Sie im Layout „Kunden“ einen Ausschnitt hinzu und nehmen Sie das Feld „Kunden::AusstattungsID“ in den Ausschnitt auf.
Tabelle |
Feldname |
Kommentar |
Kunden |
KundenID |
Zahlenfeld, automatische Eingabe von fortlaufende Nummer. Eines der Abgleichsfelder für die Tabelle „Catering-Positionen“. |
|
Eventdatum |
Datumsfeld; das andere Abgleichsfeld für die Tabelle „Catering-Positionen“. |
Catering-Positionen |
KundenID |
Zahlenfeld, eines der Abgleichsfelder für die Tabelle „Kunden“. |
|
Eventdatum |
Datumsfeld; das andere Abgleichsfeld für die Tabelle „Kunden“. |
|
AusstattungsID |
Zahlenfeld |
Um einen neuen Bezugsdatensatz anzulegen, geben Sie das aktuelle Datum in das Feld „Kunden::Eventdatum“ und eine AusstattungsID in den Ausschnitt des Layouts „Kunden“ ein.
Da „Eventdatum“ ein Abgleichsfeld ist und die Beziehung die Erstellung von Bezugsdatensätzen in der Tabelle „Catering-Positionen“ zulässt, wird der Wert von „Kunden::Eventdatum“ automatisch in das Feld „Catering-Positionen::Eventdatum“ eingegeben.
Um Verleihvorgänge von einem früheren Datum zu sehen, ändern Sie den Wert im Feld „Kunden::Eventdatum“. FileMaker Pro zeigt alle Bezugsdatensätze mit derselben KundenID und demselben Eventdatum an.