unieke index werkt in sommige gevallen niet

Status
Niet open voor verdere reacties.

DukeOfEarl

Gebruiker
Lid geworden
20 mei 2015
Berichten
77
heb een tbl-Verkopen:

VerkoopsID (PKey)
LeerlingID
ArtikelID
Semester (1 of 2)
SoortVerkoop V(ast) of F(acultatief)
...

deze tabel wordt aangemaakt met een toevoeg-query.
om te vermijden dat de query meer dan eens wordt uitgevoerd (resulterend in dubbele records), een UNIEKE index gemaakt in de tabel voor de combinatie
van de velden LeerlingID, ArtikelID, Semester en SoortVerkoop.
dit functioneert prima: wanneer de toevoegquery (verkeerdelijk) nog eens wordt uitgevoerd, worden er geen nieuwe records weggeschreven omwille van het
index-conflict.
voortaan moeten er echter ook sporadisch records toegevoegd worden aan de tbl-Verkopen via een invoer-formulier, en hier moeten dubbele records wel mogelijk zijn.
wanneer ik bij zo'n invoer-formulier record als SoortVerkoop een E(xtra) invul, kan ik die record wel degelijk opslaan (geen index-conflict), maar geen 2e record met de zelfde LeerlingID, ArtikelID en Semester.
LOGISCH, want dan krijgen we een index-conflict.
wist niet goed hoe dit te omzeilen, tot ik BIJ TOEVAL merkte dat de unieke index niet werkt indien je het veld SoortVerkoop niet invult.

Samengevat: er is een unieke index die prima functioneert voor de records aangemaakt met de toevoeg-query (en waar iedere record een waarde heeft in het veld SoortVerkoop)
Bij de records aangemaakt met het invoer-formulier (met een blanco waarde in het veld SoortVerkoop) laat de zelfde unieke index een onbeperkt aantal records toe.
Gelukkig is dit net wat ik nodig heb, maar ik begrijp het niet !!

Gewoonlijk kom ik op dit forum met een vraag om een probleem op te lossen; nu heb ik een oplossing (wel puur bij toeval gevonden), maar ik begrijp het proces niet - omgekeerde wereld :)
kan iemand een woordje uitleg geven, zodat ik toch begrijp waarom het zo is.
 
Ik zou behoorlijk pissig zijn als ik dubbele records kon toevoegen, lijkt mij een ongewenste zaak. Maar jij bent er blij mee :).
Ik vermoed dat, als je een veld uit de index leeg laat, de hele index genegeerd wordt. Ik zou dus sowieso alle velden in de index verplicht maken om (juist...) dubbele records te voorkomen. Maar zoals gezegd: je bent blij met de situatie :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan