One-to-many relatie leggen met 2 Primaire Sleutels

Status
Niet open voor verdere reacties.

milovanriel

Gebruiker
Lid geworden
1 apr 2008
Berichten
17
Ik heb misschien een stom vraagje, maar ik geraak er niet uit.

Heb een boek gekocht van access 2007 waar ze mij vertellen om 2 tabellen te maken.
Bv Tabel1 "Company" met Primaire sleutel "CompanyID" en
Tabel2 "Contacts" met Primaire sleuel "ContactsID".

Ik sleep "CompanyID" naar ContactsID in het RelatieVenster maar krijg dan enkel een One-To-One Relationship. Alles al geprobeerd, terwijl in het schema van het boek een foto staat van een One-To-Many tussen twee Primaire Sleutels.

Dit kan wel
Als ik "CompanyID" naar een veld onder de primaire sleutel sleep die ook numeriek met de naam "contactsID" (even voor test gedaan) lukt het mij wel om een One-To-Many te maken.

Het zal wel aan mijn klein brein liggen maar geraak er niet uit. Thanks om mij even op het goede path te zetten :(
 
Hoi,

Tabel1 "Company" met Primaire sleutel "CompanyID",
Tabel2 "Contacts" met Primaire sleuel "ContactsID" én een veld genaamd CompanyID, die geen sleutel hoeft te zijn.
De logica hierachter is dat elke contact gekoppeld moet zijn aan een company, dus dit gegeven moet ergens opgeslagen worden, per contact. Nu wil je niet per contact de hele rits aan companydetails opnemen, dus neem je alleen de companyID op. Companydetails sla je op in de table Company.

Vervolgens CompanyID naar CompanyID slepen en voila.

Groet,

Zqwiqly.
 
Laatst bewerkt:
thanks

Zqwiqly bedankt ik ga het even uitproberen. Zo heb ik het ook in het verleden gedaan maar was een beetje verward door de foto die ik hier even mee stuur.

Hier is wel een one to many tussen 2 Primaire sleutels:)

Zie maar eens als ge tijd hebt

groetjes
 

Bijlagen

  • Relationships.JPG
    Relationships.JPG
    31,2 KB · Weergaven: 85
Hoi,

Ik snap het idee beter nu.
Ik heb het even snel in een db-tje gegooid, en ik heb er geen problemen mee.

Belangrijk:
Tabel Companies:
CompanyID, numeriek én als enige sleutel aangemerkt.
Table CompanyContacts:
CompanyID, numeriek, ContactID, numeriek én beide als sleutel aangemerkt.
Table Contacts:
ContactID, numeriek én als enige sleutel aangemerkt.
Vervolgens inderdaad de ene CompanyID in het relatiescherm naar de andere CompanyID slepen en loslaten. Dan krijg je keurig netjes een 1-op-veel relatie. Zelfde geldt voor ContactID.

Zie bijlage.

Succes,

Zqwiqly.
 

Bijlagen

  • New Picture.jpg
    New Picture.jpg
    32,3 KB · Weergaven: 79
Oke ga het deze avond even proberen. Indien het niet lukt stoot ik mijn hoofd wel een paar keer tegen de muur.

Ik laat nog wel iets weten

groetjes
 
Simpeler

Het kan veel simpeler door in de tabel contacts een contactid als sleutel in te stellen en daarbij een veld companyid. Die laatste is de relatie met companies. Je hebt dan de moeder-tabel companies, waar nul, 1 of meerdere contacts onder hangen, dit zijn records in de tabel contacts die als companyid hetzelfde nummer hebben als de sleutel van de company.

Typisch maak je dan in access een formulier met gegevens van de company. Op dit formulier kun je een subformulier zetten met contacts, de koppeling loopt dan over companyid van beide tabellen. Je krijgt dan een formulier met company-gegevens waaronder een lijstje met bijbehorende contacts. Als je hier een contact toevoegt, dan wordt deze gekoppeld aan de company in beeld.
 
Yup sesam, da's wat ik in mijn eerste antwoord ook bedoelde.

Het tweede antwoord was meer gericht om het plaatje van milovanriel na te bouwen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan