Je voorbeeld is een 'beetje' incompleet, want van (op twee na) elke keuzelijst ontbreekt de bijbehorende tabel. Dat gaf mij dan weer wél de gelegenheid om jou voor een hoop aankomende ellende te behoeden, want ik heb dus maar in je tabel alle keuzelijsten die op een tabel zijn gebaseerd omgezet naar een tekstveld. En daarbij dus de welgemeende waarschuwing: DOE DAT NOOIT!! Keuzelijsten horen thuis op formulieren, niet in tabellen. In een tabel (vind ik, anderen denken daar anders over) moet je te allen tijde de werkelijk opgeslagen waarde kunnen zien, en niet de waarde die je in de keuzelijst laat zien. Al was het maar omdat je in exports dan ineens hele andere resultaten te zien krijgt.... Leer jezelf dus af om keuzelijsten te maken in tabellen, tenzij op basis van Lijst met waarden, waar je er ook twee van hebt. En die heb ik uiteraard laten staan.
Dat gezegd hebbende: wat wil je precies wanneer registreren? Ik kan me voorstellen dat je wél wilt vastleggen dat iemand een nieuw record heeft toegevoegd of verwijderd, maar in die gevallen wil je denk ik niet alle oude/nieuwe values opslaan. Die zijn er dan namelijk niet. Althans: bij toevoegen is er geen oude waarde, en staan alle nieuwe waarden in de tabel, en bij verwijderen zijn alle waarden wég. In dat geval wil je wellicht wél het complete record opslaan, maar je kunt beter dichtspijkeren dat er niet verwijderd mag worden, omdat je database historie dan doorgaans gelijk corrupt is. Hooguit zul je willen vastleggen dat een verkeerd aangemaakt record, wat dus logischerwijze wél mag worden verwijderd, is verwijderd door een daartoe geautoriseerde persoon. Maar omdat het dan om een foutief record gaat, lijkt me de ingevoerde waarden dan minder interessant om te bewaren.
Dan hebben we het dus over de mutaties waarvan je oude en nieuwe waarden kan vastleggen. Is dat ongeveer het idee?