Tabel normaliseren in access

Status
Niet open voor verdere reacties.

pweemer

Gebruiker
Lid geworden
26 jan 2010
Berichten
10
Hallo allen,

Voor een proefmodel heb ik data in een access database gekregen. Dit is 1 grote tabel met enquete resultaten. Voor de vervolgopdracht kan ik hier niets mee en ik moet er meerdere tabellen van maken (normaliseren). Ik weet precies hoe ik het wil hebben, maar ik weet niet hoe ik dit kan doen zonder al te veel moeite.

Huidige situatie:
1 tabel:
Enquete id Leeftijd Level Geslacht Vraag 1 Vraag 2 ... Vraag 120
1234 36 7 M 4 3 3

Vragen kunnen alleen score 1 t/m 5 zijn

Gewenste situatie:
4 tabellen:
1. Enquete
Enquete id Leeftijd Level Geslacht
1234 36 7 M
2. Vragen
Vraagid Vraagcode Vraag
1 Gegenereerd? Vraag 1 Eten en drinken aan boord
2 Vraag 2 Behulpzaamheid crew
120 Vraag 120 Totale indruk

3. Score
Score Beoordeling
1 Slecht
2 Matig
3 Voldoende
4 Goed
5 Uitstekend

4. Enquete-vragen
Enquete id Vraagid Score
1234 1 4
1234 2 3
1234 120 3

Vooral tabel 4 is een uitdaging voor mij.
Eigenlijk wil ik wat nu kolomnamen zijn in een nieuwe tabel als variabele (data) opnemen.
Mijn collega heeft wel iets met een module geprobeerd, maar dat lukt niet verder.

Kan iemand mij verder helpen?

Groeten,
Patricia
 
Het hangt er een beetje vanaf hoe je e.e.a. wilt inrichten. Een Enquete wordt bepaald door het aantal vragen dat je gebruikt, dus als er in een Enquete 120 vragen zitten, moet je die ergens kwijt. Op dit moment heb je zo te zien één tabel met een EnqueteID, en dan de 120 vragen. Dat is op zich geen slechte constructie, als je altijd enquetes maakt met 120 vragen. Wil je het aantal vragen flexibel houden, dan is deze opzet minder geschikt, want je kunt nu niet meer dan 120 vragen stellen, en bij een enquete van 20 vragen zit je met een tabel met 100 lege velden.
Om de tabel te splitsen naar een flexibele opzet, dan heb je dus vijf tabellen nodig: Tabel1 bevat de Studentgegevens, met o.a. StudentID, Tabel2 de Enquetegegevens, zoals EnqueteID, datum, plaats etc, Tabel3 bevat dan de vragen, dus VraagID, EnqueteID en Vraag, en Tabel 4 combineert StudentID, EnqueteID, VraagID en Score.
Omdat je al een enquete hebt, moet je een routine hebben die de tabel met enqueteID en de vragen inleest, en vervolgens alle vragen samen met EnqueteID en Score inleest, en voor elke combinatie van EnqueteID en Vraag een nieuw record aanmaakt. Dat is in beginsel dus goed te doen. Omdat er nogal wat specifieke code aan te pas komt, qua tabelnamen en veldnamen, is het misschien handig als je een voorbeeldje kunt posten, want het wordt anders een heel moeizaam verhaal om het uit te leggen...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan