Am Ende der Schicht möchte ich jetzt mit einem Button den Datensatz sperren
Einen "Datensatz sperren" ist je nach perspektive eine falsche/missverständliche Begrifflichkeit.
Eine Datensatzsperre erfolgt im Rahmen einer Transaktion während der Änderung eines Datensatzes und automatisch. Sie verhindert, dass andere Zugriffe in diesem Moment ebenfalls Änderungen vornehmen.
Du möchtest einen Schreibschutz für den Datensatz realisieren?
Denke Dir eine Logik aus, die das leistet. Es kann eine Spalte sein, die einen Wert für schreibschutz (ja / nein) bietet.
Wenn bereits vorhandene Angaben diese Information automatisch liefern, z.B. Angaben zur Schicht, Tageszeit, o.ä., dann kann man den logischen Schreibschutz auch darüber realisieren. Um 6 ist die Schicht zuende: Schreibschutz.
Dein Programm muss das entsprechend überwachen und befolgen, also eine VBA Lösung.
Solche Mechanismen sind allerdings nur dann wasserdicht, wenn die Laufzeitumgebung eine Umgehung zuverlässig unterbindet. In einer relationalen DB ist das kein Problem und auch nicht sehr teuer (Ressourcenaufwand). In Access bin ich da nicht auf dem Laufenden. Gut wäre vermutlich, wenn Access gar nicht selbst die Daten verwaltet, sondern ein RDBMS dahinter liegt, das diese Regel per Trigger überwacht.