Alle wijzigingen wijzigingen mogen voor mij in principe rechtstreeks doorgevoerd worden, doch het management wil dit niet zomaar.
Tenzij ‘het management’ uit ervaren database bouwers bestaat, zou ik me daar niet zoveel van aantrekken. Wel uiteraard uitleggen waarom je iets bouwt, en vooral (daar is management dan wel weer goed voor) met ze afspreken wat ze nu precies willen hebben. Mij lijkt dat er bepaald niet goed is nagedacht over de functie van de database. Ben benieuwd naar het antwoord op de vraag of er een goed Functioneel Ontwerp is gemaakt

.
Laten we eens naar je eerste zin kijken, die lijkt me wel belangrijk. Je herhaalt hem later nog een keer: “Dus elke wijziging of communicatie in welke vorm dan ook wordt geregistreerd in de tbl_bewegingen. Kwestie om oude gegevens steeds te kunnen opvragen indien nodig.”
Dus: je krijgt allerlei mutatie(verzoeken) binnen, die niet allemaal goedgekeurd en doorgevoerd hoeven te worden, maar wel als zodanig geregistreerd. Ook de contactmomenten met de personen die de mutatie aanbrengen worden vastgelegd in die tabel. Dat roept gelijk weer een paar vragen op:
1. Waarom mag de persoon die de gegevens invoert, die niet doorvoeren in de tabellen?
2. Wie bepaalt dan wel welke gegevens worden gemuteerd?
3. Op welk moment wordt besloten om een mutatie alsnog door te voeren?
4. Is de persoon die de mutatie doorvoert een andere dan degene die de mutatie invoert?
5. Gebruik je de tabel tbl_bewegingen om oude gegevens terug te zetten?
Ik heb wel eens een database gemaakt i.v.m. een reorganisatie waarbij een groep mensen de bestaande persoonsgegevens moesten omzetten naar de nieuwe situatie, maar waarbij het ook mogelijk moest zijn om gegevens terug te zetten. En dat alles moest gelogd worden op datum/tijd en de medewerker die de mutatie gedaan had.
Ik heb daarvoor een formulier gemaakt waarin je links de oude velden van de tabel zag, en rechts lege tekstvelden die gelinkt waren aan de velden aan de linkerkant. Met een knop werden de mutaties dan doorgevoerd in de betreffende tabel, en de mutaties werden opgeslagen in de mutatietabel. Die mutaties waren gelinkt aan de personen, en op het hoofdformulier kun je dan in een subformulier per persoon zien welke mutaties er waren geweest. En met een klik op een mutatierecord kon je die mutatie weer terugzetten in de hoofdtabel.
Zo’n constructie zou voor jou ook prima werken denk ik. Je leest dan alle mutaties in de tabel tbl_bewegingen in, zonder dat ze worden doorgevoerd in de betreffende tabel. Dat gebeurt later door de persoon die wél bevoegd is om de mutaties door te voeren.