The approach would be dependent on what type of form you use.
Each record would have to be associated with a user. You could have a field (e.g.CoordinatorID) for those records. This would be the PK ID of the user and that would link to their permissions level in the user table. If a continuous or datasheet form, load it with that user's records only because to lock records individually may be impractical at best and impossible at worst. Provide a way to swap from one to the other option and make the recordset read only for when it's not their stuff.
If the form is single record view, you can lock it or all the controls based on whether or not it is their stuff by using the form Current event.
For admin types:
The code for handling the above would need 2 pathways - as above if not an admin, or skip all the controlling code if an admin, thus not locking the form or its controls.
I would enter the levels and associate a numerical value, increment by say 5. Thus lowly user is 1, next is 6, next 11 or something similar. That way, you can govern permissions using operators so that (e.g.) anyone 11 or under gets the permissions of the 1st 2 levels plus their own. You can also compartmentalize by using (>=1 and <= 6) OR (>=16 ) if you get my drift.
Gotta run. Hope that helps a bit.
Did you consider what this will entail if user A is covering for user B who is on vacation?
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.