Auto-Closing Access Applications
A Scheduled Shutdown Solution for Multi-User Environments (an Access User Group talk with Steve Owen)
How do you gracefully close multiple Access applications across an enterprise when you need to perform critical backend maintenance?
In this Access User Group presentation, Steve Owen shares a comprehensive solution for automatically shutting down Access frontend applications on a schedule. The solution combines a standalone scheduler application with integrated monitoring capabilities in each frontend, allowing administrators to coordinate maintenance windows while giving users adequate warning to save their work. The approach is particularly valuable for warehouse management systems where multiple frontend applications share common backend databases.
Whether you're managing complex multi-user Access applications or simply need a reliable way to ensure backend maintenance can proceed without interruption, this presentation offers practical insights into implementing a robust shutdown solution.
The Problem
Common Challenges
- Multiple users across different locations need to be out of the system for maintenance
- Manual shutdown processes are time-consuming and unreliable
- Users may leave applications open during breaks or lunch
- By the time you've closed one application, others may have reopened
- Backend corruption issues require frequent maintenance windows
Existing Solutions
- FMS Agent can compact and repair backends but fails if users are still connected
- FMS Admin monitors locks but has limited kickout capabilities
- Most solutions don't provide users with adequate warning
The Solution Architecture
Key Components
- Standalone scheduler application for administrators
- Monitoring form integrated into each frontend
- Shared backend tables for coordination
- Configurable grace periods and notifications
Core Features
- Schedule one-time or recurring maintenance windows
- Target specific applications or all monitored frontends
- Custom notification messages for users
- Automatic undo of unsaved changes
- Logging of user sessions and application status
Implementation Details
Frontend Integration
- Three required components:
- Preferences table
- Links to scheduler database
- Monitor form
- Minimal code footprint in frontend applications
- Timer-based checking for shutdown events
Data Protection
- Automatically undoes unsaved changes
- Recursively processes all forms and subforms
- Handles complex form hierarchies
- Preserves data integrity during shutdown
Limitations and Considerations
Technical Constraints
- May not handle modal dialogs properly
- Long-running queries need special handling
- Table-level validation errors can prevent closure
- Unattended applications require additional automation
Implementation Notes
- Timer interval should be balanced for performance
- Grace periods should allow adequate save time
- Batch processes may need monitor pause capability
- Requires coordination with maintenance schedules
Resources and References
Available Tools
- FMS Agent for backend maintenance
- FMS Admin for lock monitoring
- Custom scheduler application (demonstrated)
- Frontend monitoring components
Conclusion
Steve Owen's solution offers a practical approach to managing scheduled shutdowns in complex Access environments. While not addressing every edge case, it handles the majority of common scenarios while providing users with a graceful shutdown experience.
Recording
The full recording is available on YouTube:
Join Live!
Want to get even more out of these presentations? Join the live Access User Group events! The next upcoming events are listed on the AUG Event Calendar.
Attending live gives you the opportunity to:
- Interact directly with presenters during Q&A sessions
- Network with other Access developers
- Share your own experiences and challenges
- Get immediate answers to your specific questions
- Participate in group discussions
With multiple user groups across different time zones (and languages!), you're sure to find a meeting time that works for your schedule.
Acknowledgements
- Base cover image generated by FLUX-schnell
- Initial draft generated by Claude-3.5-Sonnet