We eliminated weekly data corruption in a mission-critical Microsoft Access system by replacing the file-based backend with a stable PostgreSQL database - without disrupting users or rewriting the application.
The client’s internal database application, built in Microsoft Access, supported core business operations including donor relations management, pledge payment requests, and opportunities management. For years, the system ran with a shared .accdb MS Access backend file hosted on a file server. This setup was prone to corruption - roughly once a week - often requiring IT intervention, downtime, and manual data recovery.
Due to staff familiarity with the existing interface and the immediacy of the corruption problems, the organization needed a backend modernization that could retain their Access forms and reports with minimal retraining and minimal development time.
We migrated the Access backend to a PostgreSQL database, accessed via ODBC. The implementation followed a phased approach.
Component | Details |
---|---|
Legacy Frontend | Microsoft Access (.accdb format) |
Original Backend | Shared .accdb file hosted on an SMB share |
New Backend | PostgreSQL 13 (hosted on internal VM, ready for future cloud hosting) |
Connection Method | ODBC (psqlODBC driver), DSN-less connection strings |
Schema Migration Tools | Manual translation, only minutes to apply during go-live |
Link Table Update | Automated relinking using VBA and DSN-less connection configuration |
Code Compatibility | Minor VBA updates (reserved keywords, Yes/No → boolean conversions, case sensitivity edits) |
Backup Strategy | pg_dump scheduled nightly; access frontends stored in version control for rollback |
Result | Zero corruption incidents since migration; nearly transparent to users |
We treat legacy systems with respect - not merely as obstacles, but as trusted tools that deserve careful upgrades. In this case, we honored the client’s budget, immediacy, and staff habits while delivering a backend with enterprise-grade stability.