Ga naar inhoud
  • 0

Relaties ... altijd m'n zwak punt geweest ...


Stardust

Vraag

Ik zit met een relatie probleem ... en dit geldt niet alleen voor m'n huwelijk ben ik bang ...

 

Ik heb een database bestaande uit drie tabellen, zijnde de hoofdtabel: MijnDVDs de tabel Acteurs en de tabel Regisseurs.

 

Nu wil ik telkens ik een nieuwe DVD heb deze invoeren in dde hoofdtabel MijnDVDs met tevens de voornaamste rolbezetting (maximum 5 acteurs). Aangezien veel acteurs in verschillende films spelen wil ik gebruik maken van een invoerlijst gebaseerd op mijn tabel 'acteurs' wat op zich geen probleem is.

 

Wanneer ik echter geen dvd heb van deze acteur moet er in de onderliggende tabel Acteurs automatisch een nieuw record aangemaakt worden met de gegevens die ik in mijn hoofdtabel invoer.

 

Hoe ik het ook keer of draai, dit lukt me niet :oops:

 

Ik zit te suffen over welke relatie ik dien aan te maken en hoe ik mijn velden in m'n hoofdtabel dien te definieren maar kom niet tot een oplossing :cry:

 

Wie kan me goede raad geven en liefst onder de vorm 'relaties voor dummies' ? :oops:

 

Alvast bedankt !!

Link naar reactie

15 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Ga eens na wat je met Set Field kunt doen als je dit in een script gebruikt.

 

Indien je dit slim gebruikt met een relatie, waarbij de aanmaak van records toegelaten is, gaat FM kijken of de relatie opgaat.

 

Het lukt niet, want er is geen gerelateerd record.

 

FM zal zichzelf dwingen om de relatie wel te laten werken.

Enige manier is om een record aan te maken, wat FM dus zal doen.

En daar heb je het record indien er nog geen acteur is.

 

Is er een gerelateerd record zal er niks gebeuren.

 

Volg deze denkpiste en je zult de oplossing vinden.

aangepast door Gast
Link naar reactie
  • 0

Je hebt hier typisch een voorbeeld van een veel naar veel relatie: meerdere acteurs spelen in meerdere dvd's. Je hebt dus nog een extra tussentabel nodig. Hier hou je de relatie bij tussen de dvd's en de acteurs. Deze tussentabel bevat een record voor iedere mogelijke combinatie tussen een dvd en de bijhorende acteur.

Link naar reactie
  • 0

Dus als ik het goed begrijp moet ik de volgende situatie zien te creëeren?

 

De tabel 'Overzicht' gebruik ik dan als m'n invulscherm ... maar hoe zit het dan met de relaties ? :oops:

 

Jean, ook met jouw denkpiste ben ik aan de slag geweest ... scriptje maken in Acteurs (New record; SetField [en hier begint het probleem]) :oops: Dit script extern uitvoeren vanuit MyDVDs. Resultaat, er wordt inderdaad een nieuw record aangemaakt in Acteurs, maar in het Veld Naam komt niets gezien de relatie niet klopt :oops::oops:

 

Ik zit hier met het schaamrood op de wangen want ik moet toegeven dat ik relationele problemen heb en/of relatieinzichtgebrek (wat een woord).

Layout.jpg.55cfcf44117d658ba97632dbdd99bbd3.jpg

Link naar reactie
  • 0
Jean, ook met jouw denkpiste ben ik aan de slag geweest ... scriptje maken in Acteurs (New record; SetField [en hier begint het probleem])

 

Nope, scriptje dien je te maken in je primary table, niet in je acteurs table.

 

Indien je scripts gebruikt voor het aanmaken van records, dient FM dikwijls, soms, af en toe te 'bouncen' (wat is het nederlandse woord voor dit) tussen files/tables om twee of meerdere scripts uit te voeren.

Met Set Field in de juiste file/table heb je 1 script nodig.

Link naar reactie
  • 0

Deze jongen ziet het niet zitten :(:oops::cry:

 

Ik weet niet hoe ik de relaties moet aanmaken en ben nog steeds op zoek hoe ik automatisch de containervelden kan laten aanvullen door de juiste afbeelding(sverwijzingen).

 

Ik vind het verdomd stom dat ik maar niet tot de jiste oplossing kom, anderzijds besef ik dat de relatie de ruggegraat is van elke deftige database. Nochtans ben ik ooit met Filemaker begonnen omdat ik een lookup nou eenmaal veel eenvoudiger vond dan die relaties :oops:

DVD.rar

Link naar reactie
  • 0

Een kleine Filemaker nuance is het aanmaken van records via een relatie.

Een eenvoudige gebruik van Set Field kan hierdoor records aanmaken in een gerelateerd bestand/table

De enige voorwaarde is dat het aanmaken aangeklikt is in het dialog venster.

 

Probeer dit even.

Maak twee files/tables met een relatie ertussen via een match numeriek veld.

Maak een tweede veld type tekst in de tweede file/table.

Vink het aanmaken van gerelateerde records aan.

 

Maak een nieuw record aan in de eerste file/table en zorg ervoor dat er een waarde staat in het numerieke veld.

Maak een script in de eerste file/table met een Set Field stap.

In opties voor Set Field, kies je het tekstveld via de relatie (tweedeBestand::tekstVeld), via Specify geef je de verwijzing naar het numerieke veld:

Set Field (“tweedeBestand::tekstVeld” ; “numeriekVeld”)

 

Indien je nu het script voor de eerste keer laat lopen, zal een record aangemaakt worden in het gerelateerde bestand, omdat FM een match verwacht, er geen vindt, en zichzelf dwingt er eentje te vinden, vandaar de aanmaak van een record.

Loopt het script een tweede (of meerdere) keer, zal geen gerelateerd record aangemaakt worden, tenzij de waarde in de eerste file/table in het numerieke veld een waarde krijgt die niet bestaat in de tweede file/bestand.

 

Hiermee kun je vermijden verschillende scripts te gebruiken die mekaar in verschillende files/tables gaan aanroepen om records aan te maken. Een Set Field script is voldoende.

Link naar reactie
  • 0

Ik ben bezig geweest met een systeempje op te zetten zoals Jean aangeduid heeft. Knopje in de eerste tabel, scriptje hieraan koppelen en voila, record maken in de eerste tabel geeft een nieuw record in de tweede tabel. Werkt zoals het hoort ... maar ... nu heb ik, weliswaar tussen de soep en de patatten, getracht om dit in te schakelen in m'n DVD project.

 

:oops: Helaas :oops: ... driewerf helaas zelfs, ik kom er niet. :cry:

 

Ik heb de tabel DVD waarin ik een nieuwe titel die ik heb in breng. Telkens opnieuw dezelfde acteurs invoeren, is tegen alle normen aangaande automatisering en daarom wil ik een systeem dat wanneer ik een nieuwe acteur inbreng in het veld Acteur (herhalend veld) in DVD, ik kan kiezen uit een lijst gebaseerd op de tabel acteurs, bevat deze nog niet deze acteur/actrice, voer ik hem/haar in en automatisch gebeurt dat ook in de tabel Acteurs.

 

De vervolglijst is geen probleem maar het automatisch invoeren, lukt me niet, meer nog, ik stel me de vraag of dit wel mogelijk is. Waarschijnlijk zal dat wel, want wat is nu onmogelijk voor Filemaker (?) maar ik kom er niet uit. Ik heb al enige schema's gemaakt maar ook dat brengt me geen stap nader... :cry:

Link naar reactie
  • 0
Je hebt hier typisch een voorbeeld van een veel naar veel relatie: meerdere acteurs spelen in meerdere dvd's. Je hebt dus nog een extra tussentabel nodig. Hier hou je de relatie bij tussen de dvd's en de acteurs. Deze tussentabel bevat een record voor iedere mogelijke combinatie tussen een dvd en de bijhorende acteur.

Heb je dit al uitgevoerd? Anders zal het volgens mij niet werken?

Voor het invoeren van een nieuwe acteur heb je verschillende opties:

Of je gaat naar het layout voor invoeren van acteurs.

Of je plaatst de nodige globale velden op je invoerlayout en via een scriptje voeg je de acteur erbij.

Ik heb heel vlug een voorbeeldje in elkaar geflanst.

dvd.fp7

Link naar reactie
  • 0

edc

 

Bedankt voor je voorbeeld, ik heb dat geanalyseerd en verwerkt in m'n DVD database. Dankzij dit voorbeeld en natuurlijk ook de uitleg van Jean heb ik dit kunnen toepassen. Nu dien ik hier verder met te oefenen om het systeem nog te begrijpen ook want het heeftgeen zin om klakkeloos na te apen. :oops:

 

Alleszins besef ik nog meer dat 'relaties' nu eenmaal mijn grootste probleem vormen en ga ik proberen om zo snel als mogelijk (momenteel helaas niet zo vanzelfsprekend) onder de knie te krijgen. Nu bestaat er misschien wel veel informatie over maar blijkbaar zijn mijn grijze celletjes niet zo vatbaar voor relaties :cry:

 

Alleszins dank aan voor de hulp die uiteraard hoog gewaardeerd wordt. Ik ben zo vrij in bijlage een leeg bestand aangepast met jullie techniek bij te voegen, zo kunnen anderen eveneens profiteren van jullie kennis en technieken. Het is nog niet volledig afgewerkt maar dat nu niet zo een probleem zijn om de scripts aan de juiste knoppen te hangen. Alleszins ben ik er van overtuigd dat Filemaker's waarde in hoge mate afhangt van de kennis die hier in dit forum verspeid wordt. In feite verdienen jullie een beloning van Filemaker voor al het werk dat jullie hier allemaal verrichten :!:

DVD.fp7

Link naar reactie
  • 0

Ik denk dat we Jean weer moeten danken voor zijn bijdragen. Maar ook hier blijkt nog eens welke kloof er gaapt tussen inzicht in relaties en database technology enerzijds, en het gebruik van FileMaker anderzijds.

Dat is ongeveert hetzelfde als de vergelijking tussen een training in MSWord en een cursus romanschrijven. Dat zijn twee totaal verschillende zaken, en een crack in het ene, kan een prutser zijn in het andere en omgekeerd: nogal wat grote auteurs schrijven hun boeken met potlood en papier, en nogal wat computerfanaten produceren waardeloze teksten...

Om meer hierover te weten is er nog altijd het magistrale artikel van de grote dame Ann Verrinder (ik geloof dat ze nog samengewerkt heeft met Ilyse Kazar). Zij legt uit wat relationele databanken zijn aan de hand van haar CD-collectie die ze in een databank wil stoppen. Stap voor stap legt ze uit hoe ze dat wil doen, en op welke problemen ze dan botst. Ze kan die problemen dan oplossen door het aanmaken van een tweede (uiteraard gerelateerde) databank. Maar dan heeft ze weer een ander probleem, en moet er weer een databank bijkomen. Uiteindelijk, wanneer ze erin geslaagd is haar volledige muziekcollectie te beschrijven, zit ze met niet minder dan zeventien gerelateerde databanken (tables, heet dat vandaag). Ik zou dus zeggen: lezen dat artikel! Het is de absolute must voor iedereen die met FileMaker iets degelijks wil gaan doen. Het artikel is enkele jaren geleden gepubliceerd in Advisor en had hier al lang in de Documentatie gestaan, als er niet het probleem was van de auteursrechten.

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...