Foutmelding dubbele waarden

Status
Niet open voor verdere reacties.

HansRubenn

Gebruiker
Lid geworden
14 okt 2015
Berichten
19
Beste,

Ik ben een begint gebruiker van Microsoft Access en stuit nog regelmatig op wat problemen.

Ik wil Access graag gebruiken voor het invullen van vragenlijsten, waarna ik er automatisch een rapport uit kan genereren. Nu heb ik een formulier gemaakt met de vragen en een subformulier voor de antwoorden (ja/nee/nvt/anders). Maar nu krijg ik bij het invullen van de vragenlijst een fout melding dat er dubbele waarden ontstaan. Ik heb zelf het idee dat dit komt doordat het Klant-ID(Numeriek) in het antwoorden tabel niet aansluit op het Klant-ID (Autonummering) in de andere tabellen en de waarde nul houdt. Nu is mijn vraag op welke wijze ik het Klant-ID nummer in het antwoordenformulier kan koppelen aan het Klant-ID in de andere tabellen zodat ik de foutmelding niet meer krijg en ik overzichtelijk kan zien welke antwoorden op de vragen is gegeven door verschillende klanten.

Met Vriendelijk Groet,
HansRubenn
 
Ik snap je constructie niet helemaal; blijkbaar heb je een tabel [KLanten] en wil je een vragenlijst per klant hebben. Dat kan natuurlijk. Maar dit snap ik dan niet:
Nu heb ik een formulier gemaakt met de vragen en een subformulier voor de antwoorden (ja/nee/nvt/anders).
Elke vraag heeft toch één antwoord? In mijn optiek zou je een subformulier moeten hebben waar zowel vragen als antwoorden op staan. Dus in je tabel [Vragenlijst] heb je dan zowel een verwijzing naar de tabel [Vragen] als naar de tabel [Antwoorden]. En niet los.
 
Ik wil inderdaad een vragenlijst per klant krijgen. Ik heb een formulier gemaakt voor de vragen en in dit formulier een subformulier voor de antwoorden gecreëerd zodat ik de antwoorden in een losse tabel[Antwoorden] kan krijgen.

Ik heb op dit moment dus drie tabellen: [Klanten],[Vragen] en [Antwoorden].

In het tabel [Klanten] heb ik alle NAW-gegevens van de klant staan + elke klant heeft een klant-ID[autonummering].

In het tabel [Vragen] heb ik alle vragen staan

In het tabel [Antwoorden] moeten alle antwoorden te komen staan. Hierin moet ook het Klant-ID weer terug komen. Zodat duidelijk is welke klant wat heeft heeft geantwoord op de vraag.

Er is dus al een verwijzing in het tabel [Vragen] naar het tabel [Antwoorden]. Ik krijg het alleen niet voor elkaar om het klant-ID in tabel [Antwoorden] te koppelen aan de juiste klant-ID in tabel[Klanten], waardoor deze op 0 blijft staan en de fout melding dubbele waarden geeft.
 
Ik vind je constructie niet geweldig, als ik dat eerlijk mag zeggen. (Nog welkom bij HelpMij trouwens :) ). Om te beginnen: je vragentabel is denk ik wel OK; je zult daar ook wel een veld VraagID bij hebben dat je dan koppelt. Maar de tabel [Antwoorden] zou ik anders neerzetten. Ik zou namelijk een tabel [Enquete] maken waarin je een vragenlijst samenstelt op basis van een datum en een datumbereik. Zo'n vragenlijst bestaat dan uit een aantal vragen, en daar heb je dan dus een tabel [Enquete_Vragen] voor nodig. In die tabel leg je een link naar de tabellen [Enquete] en [Vragen]. Op die manier kun je met één set vragen verschillende vragenlijsten maken, en die enquete op verschillende periodes uitzetten. Denk bijvoorbeeld aan een klanttevredenheidsonderzoek, dat je misschien elk (half) jaar wilt uitvoeren met dezelfde vragen. Elke enquete krijg je dus antwoorden binnen, en de tabel [Antwoorden] koppel je dus met het EnqueteID vast in de tabel [Enquete_Antwoorden]. Met uiteraar het KlantID.
Het kan nog uitgebreider, als je bijvoorbeeld verschillende vaste enquetes hebt die wel verschillende keren uitgevoerd moeten worden. Dan kun je er nog een tabel [Campagnes] tussen hangen. Elke vaste enquete (met de vaste vragen) krijgt dan een link met de Campagne tabel waarin je dus vastlegt wanneer die campagnes zijn, en wie er aan meedoen.
 
Het is me niet helemaal duidelijk wat je hier bedoelt.

De vragen die gesteld zullen worden zijn voor iedere organisatie hetzelfde. Het gaat trouwens meer om een checklist met vragen die doorlopen moet worden dan om een enquete. Maar als ik de tabellen [Enquete], [Enquete_Vragen] en [Vragen] maak krijg ik dan niet drie dezelfde tabellen met dezelfde vragen en records?

En met het koppelen van de Enquete-ID tussen tabel [Antwoorden] en [Enquete_Vragen] krijg ik dan weer niet het probleem dat het ID-nummer op 0 blijft staan doordat ik alleen in tabel [Enquete] de Enquete-ID op (Autonummering) kan zetten?

Excuses voor de vele vragen, maar moet nog veel leren als het om Access gaat :D
 
Ik kan uiteraard niet in jullie organisatie kijken, dus ik weet ook niet wat de meest handige inrichting is. Als het om een eenmalige activiteit gaat, zou je zelfs de vraag kunnen stellen of je dat wel in een database moet vastleggen :). Maar als je zeker weet dat je maar één vragenlijst hebt die nooit zal veranderen, dan kun je het wat simpeler inrichten. Persoonlijk zou ik het in ieder geval zo opzetten dat je wél bent voorbereid op toekomstige aanpassingen en uitbreidingen. Dat scheelt je namelijk enorm veel werk later. Maar ik herhaal het nog maar een keer: als je zeker weet dat dat niet het geval gaat zijn, dan is er niks op tegen om het simpeler te houden :).

Al snap ik op mijn beurt deze opmerking weer niet:
En met het koppelen van de Enquete-ID tussen tabel [Antwoorden] en [Enquete_Vragen] krijg ik dan weer niet het probleem dat het ID-nummer op 0 blijft staan doordat ik alleen in tabel [Enquete] de Enquete-ID op (Autonummering) kan zetten?
Elke tabel zou een eigen sleutelveld moeten hebben. De makkelijkste (en meest gebruikte) optie is om daarvoor een Autonummerveld te gebruiken. De tabellen koppel je van 'bovenaf' naar beneden op basis van het sleutelveld uit de hoofdtabel. Dus de tabel [Enquete] koppel je op basis van het numerieke veld [EnqueteID] dat in zowel [Enquete] als in [Enquete_Vragen] zit. Idem met het veld [VraagID] uit de tabel [Vragen]. Dus als je een vragenlijst hebt met 12 vragen, dan heb je één [EnqueteID] in de tabel [Enquete] (type Autonummer) en 12 EnqueteID's in de tabel [Enquete_Vragen]. Net zoals je één [VraagID] hebt in de tabel [Vragen] en 12 VraagID's in de tabel [Enquete_Vragen].
Op basis van de juiste formulier constructie (Hoofdformulier Enquete + subformulier EnqueteVragen) worden de waarden vanzelf goed ingevuld. Je hebt daar dus geen omkijken naar.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan