Modernizing and verifying a complex legacy reporting system.
An anonymized case study in migrating a Microsoft Access and VBA reporting process to C# and SQL Server—without approving differences that could not be explained safely.
The system carried years of business behavior.
The legacy process combined Microsoft Access, VBA, data queries, calculations, formatting rules, labels, and report-generation workflows. A replacement had to reproduce dependable behavior, not merely move data into newer technology.
- Microsoft Access and VBA reporting process
- Historical source data with real-world inconsistencies
- Complex calculations, labels, and business rules
- Thousands of historical report outputs
The migration paired new architecture with behavioral evidence.
The modern solution used C# and SQL Server. Verification regenerated historical reports and compared outputs at the cell level so differences in calculations, values, labels, and layout could be investigated.
Unsafe comparisons were not approved.
Some historical records could not support a trustworthy comparison because the source data itself was inconsistent or unverifiable. Those cases were isolated and documented instead of being forced into a misleading pass result.
- Cell-by-cell output comparison
- Regression tests for representative behavior
- Traceable handling of known discrepancies
- Explicit refusal to approve unverifiable history
The result was a reviewable migration decision—not a blanket claim.
More than 1,900 historical reports were generated and evaluated. Differences were traced to implementation defects, understood source behavior, or historical records that could not support a safe comparison. Acceptance remained tied to the evidence each case could support.
- Evidence organized for stakeholder review
- Business rules and calculations protected by regression tests
- Known historical-data limits documented explicitly
- No claim that unverifiable output had matched