SysTools Converts Your Data. What About Your VBA Code?

February 6, 2026 · 7 min read

If you've been researching Access database migration tools, you've probably found SysTools. They rank well, they've been around for years, and their product pages make migration sound simple. Upload your .mdb, download your .accdb, done.

But there's a question their marketing copy doesn't answer: what happens to your VBA code?

The answer — buried in forum posts and user reviews — is that SysTools migrates your tables and queries. Your VBA code, your forms, your reports, your ActiveX controls, your Jet SQL procedures: they may be dropped or converted in ways that require manual fixes to restore functionality.

For a simple database with a few tables and no automation, that might be fine. But if your Access database has been running your business for ten years, there's a good chance "the tables" represent maybe 30% of what makes it work.

What SysTools Actually Migrates

SysTools' Access migration products — Access Recovery, MDB to ACCDB Converter, and similar utilities — are designed as data recovery and extraction tools, not full migration tools. That's an important distinction.

What they handle well:

What they don't migrate:

Important: SysTools isn't being deceptive — they're a data recovery tool that also offers format conversion. The problem is that "converts .mdb to .accdb" sounds like a full migration. It isn't.

What VBA Code Actually Does in an Access Database

If your database is purely data — lookup tables, records, basic reports — VBA may be a small part of it. But most business databases that have been in production for more than a year have accumulated significant VBA logic.

Here's what VBA typically powers in a mature Access database:

Form automation

Every button click on every form likely calls a VBA procedure. The "Save Record" button, the "Generate Report" button, the "Send Email" button, the navigation buttons — all of these are event handlers written in VBA. Without them, you have a read-only data viewer, not a functional application.

Validation logic

Field-level validation that goes beyond Access's built-in validation rules lives in VBA. "This date can't be earlier than the hire date." "This quantity can't exceed the inventory level." "This customer code must match an existing record in the lookup table." All gone.

Business logic and calculations

Calculated fields that reference other tables, complex pricing formulas, payroll calculations, inventory adjustment logic — anything that requires reading from multiple tables or applying business rules lives in VBA procedures. These don't survive a data-only migration.

Report generation and formatting

Reports with dynamic headers, custom page breaks, conditional formatting based on calculated values, and footer summaries use VBA for the parts that Access's built-in report engine can't handle. Lose the VBA, lose the logic.

External integrations

Code that sends emails via Outlook, writes to Excel, reads from SQL Server, calls a REST API, or talks to an FTP server — all VBA, all dropped.

Win32 API calls

Legacy Access databases often call Windows API functions directly — for file operations, process control, window manipulation. These Declare statements need to be present (and updated with PtrSafe for 64-bit) for the database to compile at all on modern Office.

The Specific Problem with Jet SQL Procedures

Jet SQL (the query language of .mdb databases) supports stored procedures — parameterized queries that function like mini-programs. These include:

SysTools extracts simple Select queries reliably. Complex queries — especially action queries and pass-through queries — are often not transferred correctly. If your business processes run on Update queries that cascade through several tables, or Delete queries with complex WHERE conditions, you need to verify every single one runs correctly after migration.

ActiveX Controls: The Silent UI Killer

Many Access databases built in the 2000s and early 2010s use ActiveX controls to add functionality that Access's native controls couldn't provide: calendar pickers, progress bars, rich text editors, tabbed interfaces, tree views, and list views.

SysTools doesn't transfer ActiveX controls. It can't — the controls are 32-bit COM components embedded in form designs, and extracting them requires replicating the entire form design, not just the data.

After a SysTools migration, every form that contained an ActiveX control will be missing it. Depending on how central those controls are to your workflow, you may have an application that looks complete but breaks the moment users try to use it.

What a Complete Migration Actually Looks Like

A real .mdb to .accdb migration — one where your database actually works the same way after as before — covers everything SysTools covers, plus:

Component SysTools LegacyLeaps
Tables (structure + data)
Relationships Partial
Select queries
Action queries (Append, Update, Delete) Partial
Pass-through queries
Forms (design + controls)
Reports
VBA code modules
VBA PtrSafe compatibility fixes
ActiveX control assessment
Library reference updates
Linked table refresh
Data integrity verification
Money-back guarantee

When SysTools Is the Right Choice

To be fair: SysTools is useful in specific situations.

If your .mdb file is actually corrupted — not just incompatible with Windows 11, but genuinely damaged — SysTools' recovery mode can extract data that Access itself can no longer open. That's a legitimate use case. Data recovery from a corrupted file is different from format migration.

If you have a simple lookup table database with no forms, no VBA, no reports — just data that you query — SysTools will do the job faster and cheaper.

But if your Access database is a business application — with forms users interact with, buttons that trigger automation, reports that get emailed, and logic that's been refined over years — SysTools will give you a shell that looks like a database but doesn't function like one.

Not sure what's in your .mdb?

LegacyLeaps's free scan shows you exactly what your database contains: how many VBA modules, which queries, which forms, which ActiveX controls — before you pay anything.

Run Free Scan

The Real Cost of a Data-Only Migration

Here's the scenario that plays out for a lot of businesses:

  1. Database breaks on Windows 11. Team is stuck.
  2. Someone finds SysTools. $49. Looks easy.
  3. Migration runs. Tables and queries transfer. Success — or so it seems.
  4. Users start using the new .accdb. Buttons don't work. Reports don't run. The automation that ran the daily sync is gone.
  5. Business realizes the database is actually a 15-year accumulation of custom business logic, not just data.
  6. The original .mdb still exists (hopefully). Now what?

The cost isn't just the $49 tool license. It's the hours spent discovering that the migration was incomplete, the IT time diagnosing what's missing, and — worst case — if the original .mdb was overwritten or lost in the process — the cost of trying to reconstruct that business logic from scratch.

A migration tool that doesn't tell you what it's leaving behind isn't saving you money. It's deferring a larger problem.

What to Ask Before Choosing a Migration Tool

Before you commit to any Access migration tool — SysTools, Stellar, a consultant, or LegacyLeaps — ask these questions:

LegacyLeaps addresses all of those. Our free scan identifies VBA modules, forms, ActiveX controls, and compatibility issues in your database before you spend a dollar. Our done-for-you migration preserves your formulas, macros, and formatting. And we back it with a 100% money-back guarantee — if LegacyLeaps doesn't preserve your VBA code and forms, we'll refund every penny.

Ready for a migration that actually works?

See exactly what's in your database before you convert anything. LegacyLeaps's free scan takes minutes and shows every component that needs migrating.

Start Free Scan

Or talk to us about done-for-you migration — we handle everything.

Related Resources

Get tips like this in your inbox

Practical fixes for legacy Excel and Access problems. No spam.

← Back to all posts