Automatische nummering plaatsen bij velden

Status
Niet open voor verdere reacties.

tclaesse

Gebruiker
Lid geworden
8 jan 2004
Berichten
240
Hallo,

Mijn probleem is hetvolgende : Ik ben net gestart met het ontwerpen van een database om quizvragen te stockeren. Nu wil ik in m'n formulier automatisch 2 nummers koppelen aan 2 velden (categorie en bron). Bron geeft aan van welke quiz het komt, categorie is duidelijk neem ik aan (vb.geschiedenis, sport....)
De twee numerieke velden zijn 'bronnummer' en 'categorienummer'. Logischerwijze moeten deze 2 velden dus rekening houden met hetgeen werd ingevuld bij de velden 'bron' en 'categorie'.

Bijvoorbeeld : Ik voer de eerste vraag bij de categorie 'sport' in dan zou bij categorienummer '1' verschijnen en bij bronnummer '1'
Wanneer ik dan een andere categorie 'geschiedenis' heb wordt er verondersteld dat ik opnieuw categorienummer '1' heb en moest dit binnen dezelfde bron zijn dient hier dus '2' te komen.

In bijlage een pril voorbeeld van m'n database die ik nog maar net heb aangemaakt. In het formulier frm_quizvragen kunnen er altijd de nodige aanpassingen worden gedaan.

http://www.mijnbestand.nl/Bestand-36V7EUDW4CMY.laccdb
 
Jammer genoeg heb je niet de db gepost, maar de lock file, dus daar kunnen we niet zo bijster veel mee ;) Sluit de db eerst af voordat je 'm post, dan pak je nooit meer het verkeerde bestand.
 
Begin eens met je tabellen Bron en Categorie uit te breiden met een normaal sleutelveld, bijvoorbeeld een Autonummerveld, en plaats in je tabel Quizvragen de numerieke velden BronID en CategorieID. Gooi vervolgens de velden Bron en Categorie uit die tabel weg. Want in dit voorbeeld verwijs je naar de volledige tekstvelden, en dat is niet verstandig, al was het maar omdat je geen sleutelveld verder hebt.
Als ik het goed begrijp, wil je dus dat de nummering in de velden [Bron] en [Categorie] nummeren op basis van het hoogste nummer +1?
 
Octafish,

Dit is inderdaad mijn bedoeling. Dien ik hiervoor dan gebruik te maken van de formule beginnend met MAX (+1?) en hierin dus te verwijzen naar m'n idvelden bron en categorie? Of toch andere oplossing?
 
Max werkt niet in dit geval omdat er niet naar de maximale waarde op tabelniveau wordt gezocht, maar met DMax kan het denk ik wel; je zoekt dan de hoogste waarde op basis van een ander veld. Je kunt een DMax formule maken als standaarwaarde voor het veld in het formulier dat je gebruikt (of nog gaat maken).
 
Octafish,

Ik heb geprobeerd met de dmax functie maar ben helaas vastgelopen. Ondertussen heb ik wel de velden bronId en CategorieId aangepast in m'n tabellen.
Zou u me eventueel in het formulier frm_quizvragen me op weg kunnen zetten met de functie dmax? Eerder had ik reeds gedacht aan een andere functie, namelijk dlookup maar dit zou waarschijnlijk niet gelukt zijn neem ik aan?

In bijlage reeds de verbeterde tabellen met bronId en CategorieId.

http://www.mijnbestand.nl/Bestand-VCENFGFQPETT.accdb
 
Als je hem kan opslaan als een 2003 db, dan kan ik er zometeen wel even naar kijken; anders wordt het vanavond.
 
De db was prima te openen; het nummeren an sich daarentegen was nog best lastig :)
In bijgaande database doet hij vermoedelijk wel wat je wilt. Er zit een generieke functie in die op basis van de gekozen keuzelijst het volgnummer genereert. Een eenmaal gemaakte keuze moet uiteraard ook kunnen veranderen, en dat dat dan ook geldt voor de nummering voor de bestaande records, en de functie wordt dan ook bij het bladeren uitgevoerd zodat de nummering daarbij automatisch wordt aangepast.
 

Bijlagen

Beste Michel,

Dit is inderdaad wat ik zocht en kan hierdoor betere overzichten maken in m'n rapporten (chronologisch volgens bron-en categorienummer) want dat was uiteindelijk de bedoeling.
Hartelijk dank, ik heb hierdoor weer iets bijgeleerd!
 
Mag je de vraag ook nog op <Opgelost> zetten!
 
Octafish,

Kan u me zeggen hoe ik, ondanks de macro AutoExec die ik net heb ingesteld, m'n database omtrent de quizvragen rechtstreeks vanuit m'n openingsvenster kan openen?
Momenteel kom ik nog direct op het formulier zelf terecht. Voor de rest werkt alles prima!
 
Wat doet die macro dan? Een formulier kun je standaard op laten starten in de Opties van je db. Wil je de opstart instellingen uitschakelen, dan moet je bij het openen van de db de <Shift> toets ingedrukt houden.
 
Ok dit is opgelost! Rest nu enkel nog het feit dat ik de indruk heb dat bij het openen van het formulier de weergavemodi anders zijn ingesteld. Het lijkt net of ik nu de 'indelingsweergave' steeds dien in te stellen om de lay-out te bekomen van de vroegere 'formulierweergave'. Bij deze laatste weergave heb ik onderaan geen knoppen meer om over te schakelen naar andere modi (enkel nog met rechtse muisknop). Kan ik dit ook ergens instellen of heeft dit te maken met de versie 2003 waarin werd gewerkt?
 
Ik zet een formulier eigenlijk altijd in Popup modus. Dat is vermoedelijk waar hij nog nog in staat.
 
Octafish,

Wordt er in één van uw handleidingen ergens aandacht besteed aan generieke functies zoals bijvoorbeeld de database 'test' omtrent de quizvragen net hierboven?
Ik had anders graag een kleine toelichting gehad bij het opzetten van de verschillende queries (1 tot 6) met tmp... Zou dat eventueel mogelijk zijn of kan ik toch alles vinden in de handleidingen zelf?
 
De gebruikte functionaliteit is zo her en der wel min of meer (veel vager kan ik het niet omschrijven :) ) aan bod gekomen, maar omdat het onderwerp (Nummeren op basis van een willekeurig veld of een willekeurige variabele) nog niet in zijn geheel is behandeld, en er regelmatig vragen zijn over hoe je nu zelf een volgnummer kunt genereren, zal ik er binnenkort een hoofdstuk aan besteden.
 
Ok dit is een zeer goed voorstel en kijk er al naar uit! Zelf probeer ik die queries te ontrafelen maar het lijkt me voorlopig toch nog iets te lastig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan