Duplicate values???

Status
Niet open voor verdere reacties.

lauradepaura

Nieuwe gebruiker
Lid geworden
18 jun 2014
Berichten
4
Hallo,
Ik heb voor m'n werk een database moeten maken in access, maar loop tegen het volgende probleem aan. Ik heb voor een aantal formulieren die ik van sommige personen drie of meer keer in wil vullen, waarbij de persoonsid dus geen primary key kan zijn, dus heb ik een autonummer aangemaakt en dat de primary key gemaakt. In de relaties heb ik wel de ene tabel met persoonsid gelinkt met deze tabel met persoonsid. Maar nu geeft hij als ik het formulier meerdere keren van 1 persoon probeer in te vullen een fout dat er geen duplicate values in de index, primary key of relationship kan worden aangemaakt. Maar naar mij idee had ik dat opgelost door een autonummer aan te maken, maar blijkbaar niet.
Wie kan mij alsjeblieft helpen??
Alvast bedankt!
Groeten,
Laura
 
Hallo Laura, allereerst welkom bij HelpMij! Je geeft eigenlijk te weinig informatie om je gelijk goed te kunnen helpen.
Ik heb voor een aantal formulieren die ik van sommige personen drie of meer keer in wil vullen, waarbij de persoonsid dus geen primary key kan zijn, dus heb ik een autonummer aangemaakt en dat de primary key gemaakt.
Een primaire sleutel in een tabel is een sleutel die een record uniek identificeert. Als je een Personen tabel hebt, dan gebruik je een PersoonID daarin dus om die persoon uniek te identificeren, en dat kan alleen als dat PersoonID uniek is, bijvoorbeeld d.m.v. een AutoNummer veld. Je zou ook het veld [Achternaam] kunnen bestempelen als Sleutelveld, maar dan kun je maar één keer de achternaam "Paura" invoeren, en (hoe zeldzaam die naam ook is), dat is niet echt handig. Want bij een achternaam als "Jansen" kom je dan heel snel in de problemen. Daarom gebruik je dus een sleutel waarvan je op voorhand al weet dat die uniek is, bijvoorbeeld een BSN nummer. Al zal je dat in een hoop gevallen niet krijgen :).
Je hebt dus blijkbaar een andere tabel naast je Personen tabel, waarin je gegevens vastlegt die repeterend voorkomen op basis van een persoon. Ik denk dan aan uitleentransacties, verkooptransacties etc. waarbij een persoon iets leent of iets bestelt. Omdat je wilt dat een persoon dat vaker kan doen, mag PersoonID in die tabel geen sleutelveld zijn, want anders zou die persoon maar 1 keer iets mogen doen. Je wilt dus tussen de tabel de Personen een één-op-veel relatie hebben. Dat heb je, begrijp ik, ondertussen al geregeld.

Normaal is het zo dat als je een formulier baseert op een tabel, je probleemloos records kunt toevoegen. Het formulier dat is gebaseerd op de tweede tabel zou dus probleemloos moeten werken. Als dat niet zo is, dan zit er een probleem. Waar precies is zonder de db lastig te zeggen, maar zo met een vinger in de wind zou ik zeggen: gebruik je wellicht een query voor het formulier? En zit het veld PersoonID daar ook bij? En zo ja: haal je dat veld dan uit de tabel Personen, of uit de onbekende tabel? Ik wed dan dat je de tabel Personen gebruikt :).

Overigens kan het allemaal veel simpeler als je het tweede formulier koppelt als subformulier op het formulier Personen, omdat Access dan automatisch de twee formulieren op de juiste manier koppelt, en dat houdt dan weer in dat je probleemloos extra records kunt toevoegen :). Maar nogmaals: zonder de db te zien is het heel wild gokken!
 
Dankjewel voor je bericht.
Ik heb geen querie en geloof dat het wel allemaal goed gekoppeld staat aan elkaar, maar nog steeds loopt hij vast. Die één op veel relaties heb ik proberen aan te maken, maar hij maakt er telkens 1 op 1 relaties van en ik weet niet hoe ik dat moet wijzigen. Nog mooier klinkt inderdaad zulke subformulieren, maar het zijn er nogal veel en ik ben bang dat het dan onoverzichterlijk wordt dus ik heb het geprobeerd met knoppen op m'n hoofd formulier goed te zetten.
Deze database is voor een wetenschappelijk onderzoek, waarbij ik mensen een aantal keren terug zie en allerlei zaken uitvraag en meet, om je wat meer achtergrond te geven...
Tja ik snap ook dat het handiger is als je de database ziet, zodat je snapt waar ik het over heb.... maar weet niet of je daar op zit te wachten.
 
Het helpt wel om je vraag te kunnen oplossen. Dus als je hem (of het gedeelte waar het om gaat) kunt posten (mailen mag ook) dan gaat het allemaal wat sneller. Gezien je opmerkingen vermoed ik dat je dan weliswaar in de gekoppelde tabel van PersoonsID geen sleutelveld hebt gemaakt, maar dat je de eigenschap <Geïndexeerd> op <Ja, geen duplicaten> hebt staan. En in dat geval werkt het veld nog steeds als een sleutelveld, omdat je dan maar 1 keer een waarde mag invoeren. En dan kun je ook alleen maar een één-op-één relatie maken. Gebruik dus, als je wilt indexeren, de optie <Ja, Duplicaten OK>.
 
Ok dat zou super zijn als je ernaar wilt kijken!
Grote kans dat ik inderdaad die instellingen verkeerd heb staan, heel fijn als ik het naar je toe kan mailen, waar kan het heen?
 
Je mag hem mailen.
 
Laatst bewerkt:
Zou je nog kunnen aangeven hoe je het hebt opgelost? Dat is voor de lezers van het forum wel zo prettig :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan