Ik zie in je plaatje geen enkel voorbeeld van een licentie die meerdere termijnen heeft (wat ook volslagen onlogisch zou zijn, en dus raakt aan de kern van jouw vraag en onze opmerkingen verklaart). (Ok, één record, maar daar kom ik zo op terug.) Wél zie ik een keuzelijst waarin je
per licentie één termijn kiest. En dat is ook de normale gang van zaken: je hebt voor een softwarelicentie nu eenmaal maar één termijn. En dat je die kan kiezen met een keuzelijst, is ook weer de normaalste zaak van de wereld.
Doe dat niet in je tabel! Keuzelijsten horen m.i. niet thuis in tabellen, maar op formulieren. Zeker als je die keuzelijst baseert op meerdere kolommen. In jouw geval zou ik
op een formulier een keuzelijst (met invoervak) maken met twee kolommen, één met een getalveld (1,3,5 etc) en één met een omschrijving (1 jaar, 3 jaar, 5 jaar etc). De eerste kolom verberg je zodat je de tweede kolom in de keuzelijst ziet. Overigens hoeft dat niet, jouw oplossing met één kolom en de getallen werkt ook prima.
Maar dan is de vraag waarom je überhaupt een keuzelijst gebruikt de volgende vraag die ik ga stellen. Waarom zou je in hemelsnaam een keuzelijst gebruiken voor iets waar je met een simpel tekstveld veel sneller kan werken, en niet beperkt bent tot een paar getallen? Wellicht denk je nu: 2 jaar komt nooit voor, dus dat mogen ze niet invullen. Ik denk dan: stel dat er wél een licentie bij komt met een looptijd van 2 jaar, waar laat je die dan? En denk nu eens aan het gebruikersgemak! Als een gebruiker een formulier invult, zal hij/zij dat met het toetsenbord doen en met <Enter> of <Tab> naar het volgende veld gaan. Erg leuk als je vanuit het
tekstveld [Datum] naar de
keuzelijst [Licentieduur] loopt, want dan moet je weer naar je muis grijpen. En dat kost tijd en is logisitiek heel vervelend. Terwijl je met een
tekstveld dus gewoon door kunt werken, en razendsnel een 1, 4 of 5 kan typen. Dus wat is de meerwaarde van een keuzelijst? Ik zie 'm niet. Ja, als je stupide gebruikers hebt die niet kunnen lezen, en dus geen flauw idee hebben wat ze in moeten vullen in zo'n getalveld. Ik denk dan: als je je mensen zó slecht vertrouwt, gooi ze er dan uit en neem andere aan. Een béétje vertrouwen hebben dat mensen gegevens goed over kunnen kloppen zou gepast zijn.
Dat brengt me op het ene record waar ik mijn vraagtekens bij zet, en dat is ook het enige waar je geen licentieperiode hebt ingevuld. Ik vermoed dat dát ook de reden van je vraag is. En dat is het record met de regel "(ED) Licenties". Dat riekt alsof je in één record meerdere licenties wilt opslaan, en ja, dan kan ik mij voorstellen dat je niet uitkomt met één waarde. Maar daar heb ik een simpel antwoord op: zo'n record zou never nooit niet in jouw database mogen zitten! Dus dat moet je sowieso nooit zo doen! Kijk, vraag gelijk opgelost
.
Maar laten we het eens over iets veel structurelers hebben dat er verkeerd is aan jouw formulier, op basis van je plaatje dan
. Ik zou zo'n formulier in
mijn databases namelijk nooit zo kunnen maken, en (uiteraard) ook niet
willen maken. Normaal gesproken maak ik een tabel voor de licenties, waarbij ik een veld heb voor de software(naam) zélf (komt uit een tabel met softwaregegevens), één voor de computer (bij jou meerdere velden) etc. in een doorlopend formulier. Bij jou zie ik wel allemaal losse tekstvakken (de witte vakken zijn neem ik aan tekstvakken) maar daarnaast, in het lichtgroen, zie ik allemaal waarden staan die bij mij dus uit een tabel komen, maar bij jou blijkbaar
in een label zijn getypt. En dát duidt op een heel slecht ontwikkelde tabellenstructuur. En daar zou ik dus eerst eens naar kijken!
Ik raad je aan om een voorbeeld van de database mee te posten, want ik vermoed dat het belangrijk is dat we je nu even de goede kant op sturen, voordat je jezelf helemaal in een bodemloze put begeeft waar je straks niet meer met goed fatsoen uit kan kruipen zonder heel veel tijd te verspillen.