Ah, that's a different question.
Here's how you do that.
1. Make a table of scheduled events with date and time for start and end of your down-time.
2. Build a startup form that never goes away unless it decides that YOU are the person trying to connect. I.e. have it hard code for your username or less-hard-code for a role associated with your username but not associated with general users. You would have to use a table of authorized users and their assigned roles to make this work.
3. When the startup form opens, have it read the schedule table. Do a query to see if any entry exists such that Now() BETWEEN EntryStart AND EntryEnd
4. If no such event exists, compute the time until the next scheduled downtime and display that on the form. If such an event exists and they are not you, have it open up a message box with vbOKOnly. MSGBOX "A scheduled down-time event is going on now. Please come back again later.", vbOKOnly, "Down Time"
You could be nice to them and make the prompt into a string that includes the end-time of the down-time event, of course.
5. Now... to keep this from running afoul of foul users who won't log off? When you close the opening form, don't close it. Minimize it and hide it instead. Don't allow anyone except maybe you (again, based on login table or role) to actually close the table. When you open the form, start a timer on that form, Me.TimerInterval = number of milliseconds. I use 60000 so every 60 seconds the Me.Timer event goes off, and you can trap that code with a Form_Timer event. In that event, repeat your query that checks for that event that straddles Now(). As long as there IS no such event, just reload the timer interval. BUT... if there is such an event, pop up a message box that says "We are scheduled for down time now. You are leaving now.", vbOKOnly, "Beginning time for scheduled maintenance." Then do an application.quit from the timer routine.
If you are using traps on forms to prevent folks from changing things without properly saving according to special rules, this gets more complex, but the idea is still the same. You might do something like an iteration through the forms and reports collections (i.e. the OPEN forms and OPEN reports) using Forms

and just stepping through them, to do a DoCmd.Close acForm, Forms

.Name, acSaveNO (or whatever the other parameters are), and ditto for closing reports.
Of course, you must then publish your list of scheduled down times, but that should not be a particular issue. The opening form could even be designed to automagically show everyone the next (i.e. closest) scheduled down-time event.