Moving From Access to a Web System: Replacing the Database Without Breaking the Process Around It
Back to blog
full stack·September 5, 2026·4 min read·By Yehonatan Saadia

Moving From Access to a Web System: Replacing the Database Without Breaking the Process Around It

A plan for leaving Access while the business keeps running: mapping what depends on the file, moving data to SQL Server, and what sets the cutover date.

Key takeaways

  • Map what depends on the file before mapping what is inside it. The list of external consumers is the most important document in the migration.
  • Phase one is almost always moving the tables alone to SQL Server, with the Access screens staying in place as linked tables.
  • SSMA, Microsoft's free Access migration tool, converts the tables and links them back in a single operation.
  • Running both systems in parallel fails unless one side is explicitly the writer and the other explicitly the reader.
  • The cutover date is set by the business cycle - month end, stocktake, peak season - not by code readiness.

The risky part of leaving Access is rarely the tables. It is everything wired around the file: the Word mail merge, the label printer, the monthly export the accountant expects, the query somebody runs every Sunday. A plan that moves only data breaks the business in the week it goes live.

Map the process, not just the database

An old Access file almost never lives alone. Connections accreted around it over years, undocumented, and most of them surface only when they stop. Before a line of code is written, build a list of everything that touches the file.

Dependency typeTypical exampleWhat happens if it is missed
Manual exportA monthly Excel export for the accountantThe report is not produced, discovered at month end
Document mergeA Word letter pulling fields from AccessCustomer documents stop being generated
HardwareA label printer or scanner reading a tableThe packing line stops
A file dropped in a folderA supplier file imported nightlyData stops arriving with no visible error
A user's own queryA saved query somebody runs themselvesThe knowledge disappears with the query
An old form still in useA screen nobody remembered was liveAn entire sub-process falls over

That list is collected by talking to users, not by reading the file. The question that works: "what do you take out of this system, and where does it go next?".

In what order do you replace things?

Not all at once. The order that reduces risk separates data from interface and moves them in distinct steps.

PhaseWhat happensWhat still runs on AccessWay back
0Split front end and back end, automate backups, map dependenciesEverythingNot needed
1Move the tables to SQL Server, link them backEvery screen and reportRelink to the original back-end file
2Build web screens for the core process onlySub-processes, reportsSwitch the new screen off
3Move reports and exportsPeripheral screensRun the old report
4Retire Access, keep it read-onlyNothingReopen it read-only

The detail that decides it: through phases 1 to 3, both sides read and write the same single database. No syncing, no copying, no second version of the truth.

Phase 1: the data moves, the screens stay

This is the step with the best ratio of risk removed to effort spent, and it touches no business logic. SSMA - SQL Server Migration Assistant for Access - is a free, supported Microsoft tool that converts Access objects and migrates the data into SQL Server or Azure SQL. Ticking the link-tables option makes it link the tables back into the Access file at the end, so the existing screens keep working against the server.

Three technical points are worth settling in advance:

  • When migrating to SQL Server 2016 or later, add a rowversion column to any linked table that needs updating. Access uses that field to determine when the record was last updated.
  • By default SSMA does not persist the user id and password in the connection string, so decide up front how users authenticate.
  • After the move, the 2GB Access format limit applies only to the front-end file, which now holds nothing but forms.

If the file you are starting from is already damaged or will not open, that is not the start of a migration but of a recovery - see Access reporting an unrecognized database format and a recovery plan for a corrupted MDB. A migration starts from a file that opens, closes and backs up cleanly.

Running two systems without two versions of the truth

The common failure in parallel running is that each side writes to its own copy, and then somebody tries to "sync" them. Three rules prevent it:

  • One database. Both interfaces write to the same SQL Server. No export, no import, no nightly copy.
  • One entity, one writer. If orders moved to the new screen, nobody opens an order in Access. Not even "just for a small correction".
  • Differences are checked daily, not weekly. A count and a sum per migrated entity at a fixed hour. A one-day gap can be traced; a one-week gap cannot.

What sets the cutover date?

Not code readiness. The rhythm of the business, and specifically whatever cannot be run twice:

  • Month-end close and the bookkeeping export - a mid-month cutover splits the report across two sources.
  • Stocktake - the weeks either side of it are the most sensitive period there is.
  • Peak season - going live on the busiest day of the year removes any ability to fix things while running.
  • People's availability - the cutover needs whoever knows the process, not only whoever wrote the code.
  • The rollback window - if returning to Access takes more than two hours, the date has to leave room for that.

What goes wrong in month three

  • An Access form nobody listed turns out to be in daily use by one person.
  • A quarterly report fails, because the query behind it leaned on a table that changed shape.
  • A free-text field that held dates in three different formats reaches a date column and rejects rows.
  • Permissions: in Access everybody saw everything, and in the new system a correct restriction is reported as a fault.
  • Speed: a query that ran locally against a file now crosses the network, and the difference shows up on exactly the busiest form.

In a wider frame, the same decision arrives from the spreadsheet side too - see when a spreadsheet has outgrown itself.

Sources

#Access#SQL Server#migration#legacy systems#SSMA#אקסל

Frequently asked questions

How long does a migration like this take?

It depends on the number of screens in daily use, not on the size of the file. The data-move phase alone is usually a matter of days, because SSMA does most of the work. Replacing the interface is where the real time goes, measured by how many distinct processes the system actually covers.

Can we move everything at once and be done?

You can, and that is how these projects fail. A single-shot cutover requires every external dependency to have been identified in advance, and the dependency list is almost never complete on the first pass. A phased move surfaces the gaps while a fast way back still exists.

What do we do with the old history?

Separate operational data from archive. Whatever is needed for daily work moves in full; whatever is needed only for viewing can go to archive tables or stay in a read-only Access copy. That decision shortens the migration and shrinks the surface that has to be tested.

Is SQL Server required, or will another database do?

SSMA targets SQL Server and Azure SQL, which makes it the shortest path out of Access. Other databases are entirely workable, but the move then happens through manual export and import, and you lose the linked-table step that lets Access screens keep working during the interim.

Keep reading

Related service

Access & Excel Rescue

Stabilise the file the business runs on, then fix it or move it to the web.

Learn more →←

About the author

Yehonatan Saadia

Freelance automation, web & MVP developer

I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.

Work with me

Have a project like this?

Tell me what you're trying to automate or build. I reply within 24 business hours with a few targeted questions, then we walk through it on a free 30-minute call, with no commitment. You come away with a scope, a timeline and a fixed price - or a straight answer that it isn't worth building.