Hoe koppel ik een personenlijst aan een projectenlijst?

Status
Niet open voor verdere reacties.

Emdecy

Nieuwe gebruiker
Lid geworden
24 mrt 2014
Berichten
2
Hallo,

Een vrij simpele opgave volgens mij, maar ik kom er voorlopig niet uit. Ik ben volstrekt nieuw in Access overigens.

Ik probeer het volgende: ik ben voor een ontwikkelingssamenwerkingsorganisatie een database aan het maken met de bij ons betrokken projecten, en de betrokken contactpersonen. Ik heb op dit moment twee Excel bestanden: Projecten en Contactpersonen. Deze wil ik graag koppelen in een database, zodat je als je op een project klikt, bij dit project ziet welke contactpersonen er betrokken zijn, en je vervolgens eventueel hun gegevens kunt inzien. Aan de andere kant wil ik graag instellen dat als je op een contactpersoon klikt, je in zijn gegevens kunt zien bij welke projecten hij of zij betrokken is.
Sommige projecten hebben namelijk meerdere contactpersonen, en sommige contactpersonen zitten op meerdere projecten. Niet alle contactpersonen zijn echter betrokken bij projecten, sommigen zijn enkel belangstellende of potentiele projectstarters e.d.

Heeft iemand van jullie een idee hoe ik dit voor elkaar krijg? Ik heb het idee dat veel manuals van Office zich met name richten op lastigere zaken als rapportages e.d. en dat mijn vraag vrij simpel is...

Alvast bedankt!
 
Allereerst welkom bij HelpMij! Je vraag is inderdaad niet echt moeilijk op te lossen, want eigenlijk geef je zelf al de oplossing aan. In Excel kun je met twee bestanden (of werkbladen in één bestand, wat vermoedelijk het geval is?) nog wel uit de voeten, maar in Access is die aanpak niet handig. In Access gebruik je brontabellen en datatabellen. Een brontabel bevat de (min of meer) 'vaste' gegevens, en datatabellen bevatten de muterende gegevens. Een brontabel bevat unieke records van een bepaald type, zoals Contactpersonen (elke persoon uniek in de tabel) en Projecten (elk project uniek in de tabel Projecten). Een brontabel heeft een unieke sleutel die uit één veld kan bestaan, of uit meerdere velden. Een oplossing met 1 veld is handiger in het gebruik, en daar zou je dus een Autonummerveld voor kunnen gebruiken of een veld met een unieke code, zoals een Projectnummer of een Contactpersoon code.

Een datatabel bevat de gegevens die meervoudig voorkomen, en dan kun je denken aan Projectactiviteiten en een tabel waarin je de Medewerkers per Project vastlegt. Ook een datatabel krijgt een eigen sleutelveld (meestal Autonummering).

In jouw geval zijn de tabellen Projecten en Contactpersonen dus de brongegevens, en heb je nog een tabel nodig voor de datagegevens. Dat zou een tabel Projecten_Contactpersonen kunnen zijn. In deze tabel leg je op basis van de sleutelvelden uit Contactpersonen en Projecten vast welke contactpersoon op welk project werkt. Als 1 persoon op 3 projecten werkt, krijg je voor die persoon dus 3 records, en omgekeerd: als 1 project 5 contactpersonen heeft, dan heb je voor dat project 5 records.

Wil je het helemaal correct doen, dan leg je in het venster <Relaties> koppelingen tussen de 3 tabellen. Dat is dan een één-op-veel relatie tussen [Projecten] en [Projecten_Contactpersonen] op basis van het veld [ProjectID] en tussen [Contactpersonen] en [Projecten_Contactpersonen] op basis van het veld [ContacpersoonCode]. (ik geef ze maar een naampje zodat je weet wat ik bedoel).
In de tabel [Projecten_Contactpersonen] kun je uiteraard nog meer gegevens opnemen die van toepassing zijn op deze specifieke tabel, zoals misschien een startdatum en einddatum als mensen wisselende periodes zijn toegewezen aan een project. Kun je zelf wel invullen lijkt me!

Als je deze constructie hebt gemaakt, kun je formulieren maken op basis van Projecten, waarbij je een subformulier hebt met gekoppelde Contactpersonen, en op basis van Contactpersonen, waarbij je een gekoppeld subformulier hebt met de Projecten. En daarmee is je vraag geloof ik wel beantwoord :).
 
Hartelijk dank! Korte, snelle, duidelijke uitleg. Precies wat ik zocht!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan