Loading
Migration

Replace a Microsoft Access database with a web application

Somewhere in your business there is an Access database or a workbook that runs a real process, was built by someone who has left, and lives on one machine that nobody is allowed to turn off. We move systems like that onto the web without rewriting them from scratch — the data comes across, the rules come with it, and you get permissions, auditing, backups and an API you never had.

Modernise our Access database.

You are probably here because

  • It only works properly on one PC, and everyone knows which one.
  • Two people opening it at once causes locking errors, or quietly loses an edit.
  • The person who built it has left, and no one has opened the VBA since.
  • A Windows or Office update has broken it at least once.
  • There is no audit trail, so "who changed this?" has no answer.
  • Backups are somebody remembering to copy the file to a shared drive.
  • It cannot be reached from home, from site, or from a phone.

What is actually going wrong

Access was a good answer to a real question. Someone in the business needed a system, IT could not deliver one in a useful timeframe, and Access let them build something that worked. The problem is not that decision — it is that the thing they built became load-bearing and then stopped being maintainable.

What breaks is rarely the data. It is everything around it. A file-based database was never designed for concurrent editing, so multi-user access is a permanent low-grade risk. There is no meaningful permission model, so anyone who can open the file can see and change everything in it, which is a genuine problem the moment the data includes people. There is no change history, so an error found in June cannot be traced back to who made it in March. And because it is a file, backup and recovery are a matter of habit rather than infrastructure.

The reason these systems survive so long past their sell-by date is that replacing them looks like a rewrite. The logic is real and hard-won, the fields have meanings that live in someone's head, and a quote for a ground-up rebuild makes carrying on look sensible for another year. That calculation is what we are trying to change.

What we build

We start from the data rather than the interface. The spreadsheet or the exported Access tables go in, and easy-create mode detects field types and builds a proper datastore from them — with validation, indexing, row-level auditing and permissions attached from the first day. That is usually a matter of hours, not weeks, and it gives you something real to look at very early.

From there the forms and browse screens are generated over that data rather than hand-built, so the tedious part of the rebuild — every add, edit, delete and list screen — is not a cost line at all. What we spend time on is the part that was only ever in the old system's macros and in your team's heads: the validation rules that stop bad records, the calculations that have to be right, the statuses a record moves through, and who is allowed to do what.

The result is the same system, doing the same job, reachable from a browser. It is multi-user by design rather than by tolerance, every change is attributable, deleted rows go to a recoverable area instead of vanishing, and there is a REST API over it for the day something else needs to read it.

How it goes together

  1. 01

    Get the data across intact

    Export the existing tables and drop them in. Field types are detected automatically and become a real datastore with indexes and validation. Where the old system had lookup tables held together by convention, they become proper linked fields with dropdowns that cannot hold a value that does not exist.

    Built from
    Easy-create modeData Import SystemDatastores
  2. 02

    Rebuild the rules that were in the macros

    Row validation covers the checks that span several fields — the ones the old system either enforced in VBA or did not enforce at all. Calculated fields take over the arithmetic, computed on the server on every save, so a total cannot be edited into disagreeing with the lines it came from.

    Built from
    Row validationCalculated fieldsCustom actions
  3. 03

    Decide who can see what

    Security groups replace the all-or-nothing access a shared file gives you. Permissions run down to individual fields, so a manager can see a salary column and a coordinator working in the same record cannot. This is usually the first moment the business notices the system has genuinely changed category.

    Built from
    Security groupsCustom permissionsEncryption
  4. 04

    Put the process back on top

    Whatever the old system did through a sequence of forms and someone remembering the order becomes an explicit workflow, with stages, assignment and the option for an approval step that an authoriser completes from an e-mail link.

    Built from
    WorkflowsElectronic authorisationE-mail templates
  5. 05

    Get the reporting off the developer's desk

    The report builder joins related tables for you, so the reports that used to be a query someone wrote and nobody else understood become something your own team builds and schedules. Scheduled tasks e-mail the recurring ones out on their own.

    Built from
    ReportsSummary reportsScheduled tasksDashboards

The platform features doing the work

Nothing here is written specially for this use case — it is the same platform every ActiveManage application is built from. The full feature list is on the platform page.

FeatureWhat it doesWhy it matters here
Easy-create modeDrop a spreadsheet in; smart field-type detection converts it to a datastore.This is what makes the migration a project rather than a rewrite. Your data is in a real system on day one.
Data Import SystemFile imports with field mapping, data translation and five methods: Import All, Import New Only, Delete, Delete Missing and Update Existing.Migrations are never one clean import. Update Existing is what lets you re-run a load after a correction without duplicating everything.
AuditingEvery add, edit and delete records what changed, when and by whom, with one-click rollback to a previous version.The single biggest thing a file-based database cannot give you, and the one most often demanded the moment anyone from compliance looks at the system.
Security groupsUnlimited groups, users in several at once, permissions down to individual fields.Replaces "everyone who can open the file can do anything in it" with a model you can actually describe to an auditor.
Deleted itemsDeleted rows move to a recoverable area rather than disappearing.The accidental delete that used to mean restoring last night's copy of the file and losing a day's work.
API engineReady-made create, read, update and delete endpoints over your data, with the same permission rules as the interface.The old system was a dead end for integration. This one is not.

What you end up with

  • Multi-user from the first day, without file locking
  • Every change attributable, with rollback to any previous version
  • Reachable from a browser — office, home, site or phone
  • Backed up as infrastructure rather than as a habit
  • Field-level permissions instead of open-the-file-see-everything
  • A REST API over data that was previously unreachable

Whether this is for you

A good fit when

  • An Access or Excel system that a real process depends on every week.
  • Somewhere between a few hundred and a few million rows, with relationships between tables.
  • A business that needs the data to outlive the person who built the original.
  • Anyone whose insurer, funder, customer or auditor has started asking about access control and audit trails.

Probably not, if

  • A personal spreadsheet that only one person uses and nothing else depends on. Leave it alone.
  • A system whose real problem is that nobody agrees what the process should be. Software will not settle that argument, and building it early makes it worse.
  • Something already running well on a maintained commercial product that fits. Replacing a good fit with a bespoke one rarely repays the effort.

How a project like this runs

First

Data in, structure agreed, and a working system you can open and click through. This happens early and deliberately — it is much easier to say what is wrong with something on screen than to review a specification.

Then

The rules, permissions and process go on top, with your team using it against real data while it is being built rather than at the end.

Handover

It is ordinary platform configuration, so your own people can open it and change it afterwards. That is the point of doing it this way rather than commissioning something you can never touch.

Questions we get asked

Do we lose our data or have to re-enter it?

No. The existing tables are exported and imported with field mapping, and the import can be re-run with Update Existing after a correction without creating duplicates. Nothing is re-keyed by hand.

Our Access database has a lot of VBA behind it. What happens to that?

It gets read and translated into platform features rather than carried across. Most VBA in these systems is doing one of four things: validation, calculation, moving a record through a process, or producing a report. Those are validation rules, calculated fields, workflows and the report builder respectively. Genuinely unusual logic can be written as a custom function.

Can we keep using the old system while this is built?

Yes, and you generally should. The import can be re-run to bring across anything added in the meantime, so there is no freeze period and no big-bang cut-over weekend.

Where is the data hosted?

UK-hosted by default. The platform is UK-built and used by NHS trusts and public-sector bodies, so data residency and the paperwork that goes with it are familiar ground rather than a special request.

Is this cheaper than buying an off-the-shelf product?

Sometimes not, in year one. It is usually cheaper over five, because there is no per-seat licence that grows with your headcount and no annual renewal for software that fits you less well each year. If an off-the-shelf product genuinely fits your process, buy it — we will tell you so.

Sound like your week?

Tell us what you are trying to fix and we will tell you whether this is the right shape for it — including when it is not.