Koppeltabel opzetten met relaties

Status
Niet open voor verdere reacties.

Pcfr34k

Nieuwe gebruiker
Lid geworden
28 nov 2009
Berichten
4
Ik ben bezig met een project en probeer een meer-op-meer relatie te maken met behulp van een koppeltabel.

Ik heb 2 tabellen: Werknemers en Projecten

Met de database moet je kunnen zoeken op werknemer en zien aan welk project die deelneemt en per project zien welke werknemers daaraan deelnemen.

Ik heb bij Tabel Werknemers WerknemersID en bij de Tabel Projecten ProjectID als primaire sleutel.

Als ik deze overkopieer naar het Koppeltabel krijg ik eerst de fout dat ze niet allebei autonummering kunnen zijn.

Als ik ze allebei als tekst zet en in het Relatie vak ze met elkaar verbindt krijg ik een een-op-een relatie, wat een-op-meer moet zijn, dus ik vink het vakje "Referentiële integriteit afdwingen" aan en krijg telkens een foutmelding die te zien in is de afbeelding...

Wat doe ik fout, en hoe kan ik het laten werken?

Ik moet dit het liefst zo snel mogelijk weten :confused:
 

Bijlagen

  • screenshot.png
    screenshot.png
    67,1 KB · Weergaven: 453
In je twee hoofdtabellen moeten de ID nummers het type Autonummering hebben (voor het gemak gezegd, want dat hoeft niet...). In de Koppeltabel mag dat echter niet, omdat je daar gaat verwijzen naar de unieke nummers in de twee andere tabellen. Door de veldeigenschappen op Tekst te zetten, heb je het probleem alleen maar vergroot, want je kunt geen tekst aan een getal koppelen.
Dus:
In de tabel Users is UserID een autonummerveld, en in de tabel Projecten is ID (waarom overigens niet ProjectID, zegt zoveel meer over het veld...) ook een autonummerveld.
In de tabel Koppel zijn de beide velden Numeriek, Lange Integer (want dat type zijn de twee andere velden ook). In de tabel Koppel kun je wel een Autonummerveld opnemen, om een sleutel te genereren, of je maakt een sleutel van de combinatie UserID en ProjectID. Daarmee voorkom je, dat je een combinatie twee keer kunt toevoegen. Ik neem aan, dat één persoon maar één keer aan een project wordt gekoppeld?
 
Wat ik nu heb:

Werknemers
WerknemerID (autonummering)
Naam
Adres
Functie

Projecten
ProjectID (autonummering)
Projectnaam
Projectbeschrijving
Aantal werknemers

Koppeltabel
WerknemersID (numeriek)
ProjectID (numeriek)​

Als ik nu in Relatie beheer Tabel/query Werknemers op WerknemerID zet en Gerelateede tabel/query Koppel op WerknemerID zet, kan ik dat een-op-een.
Als ik het vinkje Referentiële integriteit afdwingen aanvink krijg ik weer de foutmelding zoals bij vorige post...
Dit moet een een-op-meer relatie worden, dat kan toch met dat vinkje?
 
Krijg je nog steeds dezelfde foutmelding?
 
Ik werk in 2007, maar ik heb het gevoel dat er iets drastisch mis is met mijn office pakket...
Word sloeg al is een keer cruciale wijzigingen niet op >.<
 
Je zou een keer Installatieherstel kunnen proberen, kijken of dat wat oplevert.
Het probleem met de db zou toch niet daardoor hoeven te worden veroorzaakt; het kan zijn dat de db corrupt is. Je zou kunnen proberen een nieuwe db te maken, en de drie tabellen te importeren. En daarna opnieuw de relaties aanmaken. Overigens moet je, wil je Referentiële Integriteit goed gebruiken, er wel voor zorgen dat in de gerelateerde tabel (Koppel dus) geen gegevens staan die niet in de twee andere tabellen voorkomen, want anders lukt dat niet.
Een relatie maken zonder Referentiële Integriteit heeft weinig zin; dat is niet eens een één-op-één relatie; meer een niks-op-niks relatie...
 
Ik kwam erachter dat mijn scherm te klein was en er functies wegvielen.
Ook maakte ik de stomme beginnersfout om de tabellen open te laten staan (iets wat ik haat in Access).
Het probleem is opgelost door gegevens in de tabellen te zetten, deze waren namelijk nog leeg.

Bedankt voor alle hulp.
 
Op zich mag je relaties leggen tussen tabellen waar geen gegevens in zitten, dus dat zal het probleem niet zijn geweest. Je krijgt een Referentiële Integriteitsfoutmelding als in de afhankelijke tabel waarden staan die niet in de hoofdtabel voorkomen. Dan zijn de gegevens strijdig, anders niet.
Waarschijnlijk lag het probleem dan eerder in de nog geopende tabellen; een situatie die inderdaad niet mag als je relaties gaat maken. Voor de meesten van ons is dat een gewoonte die dermate hard is ingeslepen, dat we er zelf ook overheen hebben gekeken als mogelijke oorzaak van het probleem...
Overigens mag je de vraag nog sluiten, als hij is opgelost!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan