spikepl - even with "Edited Record" I have seen some minor evidence that block locks still occur, though now that I finally have gotten my primary DB moved to a faster network, the problem is far less significant. When we were using a remote networked drive for the BE file, those locked blocks tended to stand out like sore thumbs.
As to how maintenance downtime can be managed, I take this approach. First, EVERYONE (including me) logs in through a switchboard form. The switchboard never goes away, though it can go into the background when it opens a form based on the switchboard actions. Of course, the database options have been chosen to limit the user's ability to blithely bypass that startup form. I can click a button that would
Second, there is an On_Timer event for that switchboard. It checks my "scheduled event" table to see if the current time of day is between the start and stop times for any scheduled event. (I maintain the event table with a dedicated form.) The On_Timer computes the difference between the current time and the start/stop times. If STARTTIME is in the past and ENDTIME is in the future, you are smack-dab in the middle of the scheduled event. Once a scheduled event expires (both STARTTIME and ENDTIME in the past), it is marked in a way to prevent it from showing up again. If the next available scheduled event is in the future (both STARTTIME and ENDTIME in the future), the timer used for the form's new interval might change from 60,000 milliseconds to 30,000 msec to as little as 5,000 msec just to assure that people don't hang on to the session too long.
Third, the timer for the switchboard tests the event table at least once per minute but the switchboard's OnOpen event checks the scheduler every time. If a user tries to log in during the event, they immediately get a "you cannot log in now" message and then they get logged out. If a user is already logged in when the event starts, the timer code wakes up and sends a pop-up that says "you are logged in during a scheduled down-time event." The message goes away within 30 seconds after which the timer code triggers a sequence of actions that results in the switchboard form issuing the Application.Quit command. Problem solved within 2 minutes after event start, approximately.