Veelzijdige relaties

In een veelzijdige relatie gebruikt u meerdere vergelijkingsvelden. Daardoor worden in FileMaker Pro meer criteria geëvalueerd voordat de overeenkomende gerelateerde records kunnen worden samengevoegd. In FileMaker Pro worden de waarden van elk vergelijkingsveld aan elke zijde van de relatie met elkaar vergeleken in de volgorde waarin de velden worden weergegeven. Dit is een zogeheten AND-vergelijking (EN). Voor elk vergelijkingsveld moet in de andere tabel een overeenkomende waarde in dezelfde record worden gevonden (anders worden de records niet aan elkaar gekoppeld).

Twee tabellen met lijnen tussen vier velden die een veelzijdige relatie aantonen

Deze relatie is met de volgende criteria gedefinieerd:

Tabel

Veldnaam

Opmerking

TabelA

TekstVeldA

Vergelijkingsveld naar TekstVeldB en GetalVeldB

 

GetalVeldA

Vergelijkingsveld naar TekstVeldB en GetalVeldB

TabelB

TekstVeldB

Vergelijkingsveld naar TekstVeldA en GetalVeldA

 

GetalVeldB

Vergelijkingsveld naar TekstVeldA en GetalVeldA

Volgens de criteria in deze relatie komt een record in TabelA met in TekstVeldA de waarde Blauw en in GetalVeldA de waarde 123 alleen overeen met de records in TabelB die in TekstVeldB en GetalVeldB respectievelijk de waarden Blauw en 123 bevatten. Als TekstVeldA en TekstVeldB wel overeenkomende waarden bevatten maar GetalVeldA en GetalVeldB niet, geeft de relatie geen relateerde records als resultaat.

Tabel

Recordnummer

Veldnaam

Waarde

Gerelateerde record?

TabelA

1

TekstVeldA
GetalVeldA

Blauw
123

Ja

 

2

TekstVeldA
GetalVeldA

Blauw
456

Nee

 

3

TekstVeldA
GetalVeldA

Rood
123

Ja

TabelB

1

TekstVeldB
GetalVeldB

Blauw
123

Ja

 

2

TekstVeldB
GetalVeldB

Rood
123

Ja

 

3

TekstVeldB
GetalVeldB

Blauw
123

Ja

Een veelzijdige relatie maken

In dit voorbeeld maakt u een veelzijdige relatie met een database die deze drie tabellen heeft:

  • Apparatuur, waarin de inventaris van apparaat die wordt verhuurd is opgeslagen
  • Klanten, waarin de namen en adressen van de klanten zijn opgeslagen
  • Catering lijn items, waarin voor elke verhuur van apparatuur een record is opgenomen, met onder andere de apparatuurcode, het klantnummer en de datum van het evenement

Deze database houdt de verhuur van apparatuur bij zodat voor een geselecteerde klant en een specifieke datum alle verhuurde apparaten kunnen worden weergegeven.

  1. De veelzijdige relatie is tussen de tabellen ‘Klanten’ en ‘Catering lijn items’. Maak deze tabellen met de volgende velden:
  2. Tabel

    Veldnaam

    Opmerking

    Klanten

    Klantnummer

    Een veld van het veldtype Getal, met automatische invoer van een volgnummer. Dit is een van de vergelijkingsvelden voor de tabel Catering lijn items.

     

    Datum van evenement

    Datumveld; het andere vergelijkingsveld voor de tabel Catering lijn items

    Catering lijn items

    Klantnummer

    Een getalveld. Dit is een van de vergelijkingsvelden voor de tabel Klanten.

     

    Datum van evenement

    Een datumveld. Dit is het andere vergelijkingsveld voor de tabel Klanten.

     

    Uitrustingscode

    Getalveld

  3. In het dialoogvenster ‘Relatie bewerken’ definieert u ‘Klantnummer’ en ‘Datum gebeurtenis’ als de vergelijkingsvelden in de relatie tussen de tabellen ‘Klanten’ en ‘Catering lijn items’.
  4. Stel in de tabel ‘Klanten’ het veld ‘Klantnummer’ zodanig in dat automatisch een volgnummer wordt ingevoerd zodat elke record in de tabel ‘Klanten’ een unieke identificatiecode bevat.
  5. Selecteer in de tabel ‘Catering lijn items’ de optie Maken van records in deze tabel toegestaan via deze relatie.

    De tabellen in de relatiegrafiek zien er volgt uit:

  6.  

    Een veelzijdige relatie tussen de tabellen ‘Klanten’ en ‘Catering lijn items’

  7. Voeg een portaal aan de lay-out ‘Klanten’ toe en voeg het veld Klanten::Uitrustingscode toe aan het portaal.

Als u een nieuwe gerelateerde record wilt maken, voert u de huidige datum in het veld Klanten::Datum gebeurtenis in en vervolgens een uitrustingscode in het portaal in de lay-out ‘Klanten’.

Omdat het veld ‘Datum gebeurtenis’ een vergelijkingsveld is en voor de relatie nieuwe gerelateerde records kunnen worden gemaakt in de tabel ‘Catering lijn items’, wordt de waarde in het veld Klanten::Datum gebeurtenis automatisch ingevoerd in het veld Catering lijn items::Datum gebeurtenis.

Om de artikelen weer te geven die op een vroegere datum zijn verhuurd, voert u een andere datum in het veld Klanten::Datum gebeurtenis in. In FileMaker Pro worden dan alle gerelateerde records met dit klantnummer en deze gebeurtenisdatum weergegeven.