Query voor tabel die afhankelijk is vanzichzelf..

Status
Niet open voor verdere reacties.

Matjes

Gebruiker
Lid geworden
21 jun 2016
Berichten
80
In de cursus Access voor Beginners geschreven door OctaFish staat in hoofdstuk 9 een mooi voorbeeld van een tabel die afhankelijk is vanzichzelf. Hetzelfde principe heb ik gebruikt maar nu voor 9 soorten niveaus. Het is voor een soort van eisenboom waarbij er eisen aan objecten gekoppeld kunnen op elk niveau. Zowel op een hoog niveau op projectbasis als op een lager detailniveau van een object. Bij elk record wordt ook het soort ingevuld (1) project, (2) is object (3) subobject .. tot en met (9) eis. Een eis (type 9) kan dus gekoppeld worden aan een project (type 1) als een object (type 2) enzovoort.

Bijvoorbeeld:

ID1 is parent van ID2 (ID1 is project, ID2 is object)
ID2 is parent van ID3 en ID4
ID3 is parent van ID5
ID4 is parent van ID6 en ID7
ID7 is parent van ID8
enzovoort.

Nu probeer ik hier een Query van te maken hetgeen nog niet het gewenste resultaat geeft. De bedoeling is dat wanneer ik bijvoorbeeld als criteria ID1 (project) meegeef dat alle onderliggende records netjes en leesbaar worden getoond.

Suggesties en tips van harte welkom!
 
Als je een query wilt maken op basis van alle 9 niveau's, moet je de tabel 9 keer toevoegen aan de query, en in alle gevallen steeds de ParentID koppelen aan de hoofdID. Je krijgt dan, als je de goede kant op kijkt, de juiste informatie te zien. Wel opletten dat je van alle relaties Outer Joins maakt als je niet zeker weet of alle takken ook altijd gevuld zijn. Gebruik je Inner Joins, dan zie je namelijk alleen die projecten die alle 9 niveaus bevatten.
 
Hi Octafish, dank voor je reactie. Dat werkt. Nu zou ik graag in de zelfhankelijke tabel geen 'waarden' willen opslaan maar vreemde sleutels uit meerdere gekoppelde tabellen. Bijvoorbeeld met één op één relatie naar meerdere junction tabellen. Afhankelijk van 'soort' welke gekozen is in de zelfhankelijke tabel moet dan de vreemde sleutel en de bijbehorende waarden worden uitgelezen via de betreffende junction tabel. Het staat echter niet vast welk niveau welk 'soort' is en dus in welke junction tabel gekeken moet worden. Ik denk dat dit in VBA wel op te lossen is. Klopt dit, kan dit? Of kan ik beter een ander datamodel gaan verzinnen? Tips?

Datamodel:

tblSoort - tblZelfafhankelijk: naar

tblJunction01 - tblWaarden01
tblJunction01 - tblWaarden01
tblJunction02 - tblWaarden02
tblJunction03 - tblWaarden03
.....
tblJunction09 - tblWaarden09
 
Laatst bewerkt:
Ik heb geen idee waar je het over hebt, vrees ik. Zo is de term 'junction' tabel mij onbekend.
Afhankelijk van 'soort' welke gekozen is in de zelfhankelijke tabel moet dan de vreemde sleutel en de bijbehorende waarden worden uitgelezen via de betreffende junction tabel.
Bovenstaande zin bijvoorbeeld, daar kan ik uren op kauwen zonder een spat dichter bij te komen :).

Een 'generatieve' tabel, waarbij je dus steeds doorlust naar een ander record binnen dezelfde tabel, bevat, naast het Sleutelveld, altijd een veld ParentID waarin je verwijst naar een ander sleutelveld binnen dezelfde tabel, nooit naar andere tabellen. Dat je per record daarnaast allerlei andere gegevens opslaat, lijkt mij logisch. Die data kun je uiteraard gebruiken om met andere tabellen te koppelen; geen idee trouwens of je dat als antwoord wilt horen :).
 
Hi Octafish, met junction tabel bedoel ik een jointable oftewel voor many to many relations. Inmiddels ben ik gestrand met dit hiërarchisch datamodel en ben ik snel weer overgestapt naar een relationeel model :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan