Code:
My thinking is that some or all of that process could perhaps be run from a script instead of the management db - or would it be simpler just to have the task scheduler open the management db a few minutes before 3am? In which case, what happens if the db is already open? would a second instance be created which would start to conflict with the open db?
I do not believe a second instance will be created. For some things, it may be easiest to run a task from script, entirely. If you are going through the trouble of emailing, shutting users down, etc. I would probably have script launch an Access app. The idea of having a switch to run a Macro Object in the exe line might be of use. This way you could have one app that performed different operations (different switches for different schedules and function calls).
I would create classes in an effort to maintain separation of concerns. So, with your management DB, make sure that you have separate modules, functions, forms, etc. for a specific operation. With that, you can create multiple applications. Create an application for each operation or create an application for any group of operations that may conflict with another operation(s). With proper separation of concerns, there would not be an automation conflict with your management app being open.
Code:
The other problem is he uses a laptop which is not always connected to the network. I appreciate the scheduler is not going to work (or at least not complete it's task) if he is not connected (although is there a network scheduler instead?) but if he is at least logged in, the scheduler could still be triggered. I would need to modify the code to say 'reports sent' to prevent them going twice but that is a small price to pay for timely delivery. Does anyone have any thoughts?
I use servers to run schedules all of the time. The trick is to make sure that the directories have the correct permissions. Also, you want to create the Task Schedule thing on the server and with admin privileges for said controller/server. So, make sure the directories have the correct permissions with the shares that contain the Access apps, file copies, etc.
In fact, after a manual process is fine tuned, I move it to Automation as soon as possible and eliminate the manual thing.