A lot of Arizona businesses reach a point where the Access database is doing too much work. Files pushing 2 GB start corrupting. Write conflicts appear when more than a handful of people are in at once. Queries that ran in seconds start taking thirty. The usual question is whether the whole thing needs to be replaced. It usually does not.
We move the data tables to SQL Server and leave the Access front end exactly where it is. Your team's forms, reports, and screens don't change. Nobody gets retrained on new software. The back end gets the capacity and reliability SQL Server brings, and your staff never notice the difference. Call (323) 285-0939 and we'll take a look at what you have.
Many Arizona businesses reach a point where their Access database still works but is straining under the load: files approaching 2 GB, write conflicts when multiple users edit at once, or performance that has slowed as data has grown. Moving the tables to SQL Server resolves those problems without replacing the Access interface your team already knows.
We assess the database first, fix whatever needs fixing before anything moves, migrate the tables to SQL Server, and relink the front end through ODBC. Then we test every form and report. We don't hand anything back until it works.
Usually it's a business whose Access file has gotten too large, or too many people are sharing it at once and write conflicts have become a regular problem. Sometimes it's an IT team that's flagged a shared .accdb on a network drive as a backup or compliance risk.
Nothing moves until we've looked at the file. Primary keys, data types, reserved word conflicts. We check for these before migration so they don't surface as errors halfway through.
All work is handled remotely. We serve businesses across Phoenix, Scottsdale, Tempe, Mesa, Chandler, Gilbert, and throughout Arizona.
Call: (323) 285-0939
Service Area: Phoenix, Scottsdale, Tempe, Mesa, Chandler, Gilbert, And All Of Arizona
Owner And Access Expert: Alison Balter
Microsoft Certified Solutions Developer (MCSD)
Microsoft Certified Professional (MCP)
Microsoft Certified Trainer (MCT)
Microsoft Certified Partner (MCPa)
The biggest concern we hear from Arizona businesses before a migration is that things will break or that staff will have to relearn how to use the database. Neither has to be true. Here is what moves, and what stays put.
The tables, relationships, primary keys, foreign keys, and indexes are moved to SQL Server. The Access front end connects to them through ODBC linked tables, so queries, forms, and reports pull data from SQL Server without any visible change to the user.
Every form, report, query, macro, and VBA module stays exactly where it is. Staff keep using the same screens. The interface does not change. We have run migrations where staff arrived the next morning and used the database normally. Nobody asked a question.
SQL Server handles many more simultaneous connections than a shared Access back end. If write conflicts and locking errors happen regularly in your office, moving the data to SQL Server usually resolves them. Most shared .accdb files start showing conflicts somewhere between five and eight concurrent users. SQL Server handles dozens without the same locking behavior.
SQL Server supports Windows Authentication, role-based permissions, and centralized backup through SQL Server Agent or Azure backup services. That means access controls and scheduled backups can actually be enforced, not just hoped for on a shared network file. For businesses where IT has flagged a shared .accdb as a compliance or backup risk, this is often what drives the migration timeline.
Access databases are limited to 2 GB. SQL Server Express supports databases up to 10 GB, and full SQL Server editions have no practical size ceiling for the workloads most Access users are running. The 2 GB ceiling stops being a concern the day after migration.
When on-premises server hardware is not part of the picture, Azure SQL works the same way. The Access front end connects through ODBC just like it does with a local SQL Server instance. Arizona businesses that want cloud-hosted data without changing the Access interface use this regularly.
A migration that does not get tested properly is just a delayed problem. We go through each step carefully because a form that breaks after the move is harder to fix than one that gets caught before the data goes anywhere.
We look at the table structure, primary keys, data types, relationships, queries, and any VBA code that touches the tables. We do this before anything moves. An Arizona distribution company came to us with an Access file that had been in use for twelve years. Three tables had no primary keys at all -- which would have caused edit failures on every linked SQL Server table until we caught it.
We fix data type mismatches, add missing primary keys, and rename any tables or columns that use SQL Server reserved words. If the file is still in .mdb format, it gets converted to .accdb first. If it has not been split yet, we do that here too. Better to sort it out before the move than after.
We migrate the tables using SSMA or the Upsizing Wizard and verify row counts in SQL Server Management Studio. Then we relink the Access front end through ODBC. One connection string, shared across all workstations. Not per-machine DSN files, which are the most common source of post-migration "works on my machine" complaints.
We open every form, run every report, and test edits and deletions with real data. Queries using Access-specific syntax get rewritten as pass-through queries in T-SQL where needed. Nothing goes back until it works. The front end has to behave the same way it did before the move. Not close, the same.
Most migration jobs involve more than just moving tables. The preparation work, the relinking, the query review, and the post-migration testing are where the time actually goes. We had one Scottsdale healthcare office whose Access database had grown to 1.8 GB over several years of daily use. The migration itself took an afternoon. Getting the three queries that used Access-only date functions working correctly in T-SQL took another day. That kind of detail is what we look for in advance.
The setup is called a split architecture. Access handles the interface: forms, reports, queries, VBA. SQL Server handles the data. The two connect through ODBC linked tables. In a typical Arizona office running six to twelve concurrent users, this setup eliminates the write conflicts and locking errors that slow down a shared network .accdb file. Your team sees no difference from their side of the screen.
For a broader view of our Arizona Access work, visit our Arizona Access programmer page. If performance problems after a migration are your main concern, our database performance tuning page covers what to look at once the tables are on SQL Server.
We've been doing Access to SQL Server migrations since the early versions of both products. That history matters because the problems that cause post-migration failures, missing primary keys, reserved word column names, VBA code that tests True as -1, are the same ones we've been catching for thirty-plus years. We look for them in the assessment phase. By the time the migration runs, they're already fixed.
We do not run a wizard and hand back the file. Before anything moves, we look at primary keys, data types, reserved word conflicts, and queries that use Access-specific syntax SQL Server will not accept. If there are problems, we fix them first. That's why we don't get calls after a migration asking why forms are showing #Deleted on every record.
All of this is done remotely. We access the database files, run the migration, relink the tables, test the front end, and hand back a working file. No office visits, no scheduling delays.
Alison Balter holds MCSD, MCP, MCT, and Microsoft Certified Partner credentials and has written books on Access that are still used in training programs today.
Two topics that come up in practically every migration we handle for Arizona businesses.
The single most common reason a linked SQL Server table stops working after migration is a missing primary key. Access will display a linked table that has no primary key, but any attempt to edit a record through a form shows #Deleted in every field. SQL Server requires a primary key on any linked table you want to update. The Upsizing Wizard should carry primary keys over automatically, but Access tables that were never given a primary key in the first place get migrated without one, and the problem shows up the first time someone tries to save a change.
Data type mapping is the other thing that needs a look before migration. Access AutoNumber fields become INT IDENTITY in SQL Server, which works cleanly. Access Yes/No fields map to the SQL Server BIT type, which uses 0 and 1 instead of the 0 and -1 that Access and VBA use for True. Any VBA code that checks for True by testing whether a value equals -1 will fail silently after migration unless the code is updated to use standard True/False comparisons. Access Memo fields become NVARCHAR(MAX), and Currency fields map to MONEY. None of these are hard to handle, but they need to be reviewed before the data moves rather than discovered afterward.
One less obvious issue: Access tables with reserved word column names cause errors in SQL Server. A column named "Date," "User," or "Name" is perfectly legal in Access but needs to be renamed or quoted consistently in SQL Server. We check for these during the assessment phase and rename columns in both the table and any queries, forms, or VBA code that reference them before running the migration tools.
After the tables are on SQL Server, the Access front end connects to them through ODBC linked tables. The cleanest way to manage this across multiple workstations is a single DSN-less connection string stored in a shared location or set by VBA at startup. Per-machine DSN files are the most common source of "it works on my computer but not hers" complaints after migration. One connection string, maintained in one place, eliminates that.
Access queries that use functions like IIF(), Format(), or any VBA user-defined function cannot run on SQL Server. When Access tries to run one of these queries against a linked table, it pulls the entire table to the client machine first and then filters the result locally. On a large table this is slow enough to feel broken. The fix is to convert those queries to pass-through queries, which send T-SQL directly to SQL Server and let the server do the work. CASE replaces IIF, standard date literals replace Access date formats, and single quotes replace double quotes for string values.
Adding a rowversion column to each SQL Server table is worth doing early. Access uses the rowversion value to track whether a record has changed since it was last read, which helps it avoid write conflict errors and unnecessary re-reads after updates. The column is maintained automatically by SQL Server on every insert and update. You do not use it in forms, reports, or VBA code directly, but its presence in the background makes the linked table behavior noticeably more reliable, particularly on forms that multiple users open at the same time.
No, and that's usually the first thing people want confirmed. The whole point of keeping Access as the front end is that your team keeps using the same forms, reports, and screens they already know. SQL Server takes over data storage in the background through ODBC linked tables, so the interface looks and behaves the same from the user's side.
We have done migrations for Arizona offices where we completed the work overnight and the staff arrived the next morning and used the database normally. Nobody asked a question.
Most things stay exactly where they are: forms, reports, VBA code, navigation, all of it. What changes is where the data lives. We relink the tables to SQL Server through ODBC, so everything pulls from the new back end with no visible difference to your staff.
The one thing that sometimes needs extra work: queries using Access-specific syntax like IIF() or Format() have to be rewritten as pass-through queries in T-SQL. We handle that as part of the migration. How many queries need rewriting depends on the database. A clean file might need none. An older file that relied heavily on Access-specific functions could need a dozen.
Honestly, it depends on the condition of the database more than the size. A clean, well-structured file with a handful of tables can be migrated and tested in a few days.
A larger file with complex relationships, older data types, and queries that rely on Access-specific functions will take longer. The assessment phase is where we find out. We look at the table structure, check for primary key gaps and data type issues, and review any queries that will need rewriting before we quote a timeline. That way the estimate reflects the actual file, not a guess.
It adds one step. Before running SSMA or the Upsizing Wizard, an .mdb file needs user-level security removed and should be converted to .accdb format if possible. Older .mdb files sometimes carry data types, table names, or security settings that are not supported in the newer migration tools. We check for these issues up front. A few things we specifically look for in older .mdb files:
Yes, and for a lot of Arizona businesses it's the simpler path: no server hardware to manage, no IT overhead for a local SQL Server install. The Access front end connects to Azure SQL through ODBC the same way it connects to an on-premises instance. Latency over ODBC is rarely a practical issue at the record counts most Access migrations involve; we haven't seen it be a problem on any Arizona job where the database was under a few million rows. The migration process is essentially the same either way, and your staff won't notice a difference once it's set up.
The ones we see on almost every job: tables missing primary keys, data type mismatches between Access and SQL Server, queries using Access-specific functions like IIF or Format that SQL Server doesn't understand, and connection string differences across workstations. We check for all of these before the migration starts and document the fixes so nothing breaks during rollout.
If your organization already has a SQL Server instance, we work with what you have. If not, we can help you choose between on-premises SQL Server, SQL Server Express (free, supports databases up to 10 GB), and Azure SQL. SQL Server Express handles the majority of Access migrations without any issues. If the database is older than about ten years and was never properly split, we sometimes find it needs cleanup before it is ready for any back-end, Express or otherwise. For businesses that need server-level backups, larger data capacity, or SQL Server Agent for scheduled jobs, we walk through the options before recommending anything.
These city pages show the kinds of Microsoft Access problems we help fix across Arizona. That includes migration work, performance problems, report issues, database repairs, and older files that need cleanup or upgrading.
Phoenix is where we see more large files, harder migration work, and reporting routines that need stronger cleanup before the move.
Learn MoreTucson leans more toward cleanup, upgrades, and practical fixes when an older Access file has started slipping.
Learn MoreMesa often comes down to day-to-day database fixes, import cleanup, and performance gaps that have built up over time.
Learn MoreChandler is a good fit when the main need is untangling older routines and getting a database easier to maintain again.
Learn MoreGilbert is usually more about repair work, report fixes, and the kind of cleanup that keeps a shared file from getting worse.
Learn MoreGlendale puts more weight on custom database work, cleanup, and modernization that does not force a business to start over.
Learn MoreScottsdale tends to involve older files that need more than a quick patch, especially when the workflow has become unreliable.
Learn MorePeoria is where the conversation often shifts to broken tables, macros, reports, and routines people still patch around by hand.
Learn MoreTempe focuses on cleaner imports, steadier reports, and practical fixes when users have stopped trusting what the file is doing.
Learn MoreWith Surprise, the issue is often an inherited database that needs sensible updates instead of another layer of workarounds.
Learn MoreGoodyear is a good fit when the file needs a cleaner back end and the team has grown past what a single shared Access file can handle reliably.
Learn MoreWhen an Access file in San Tan Valley has hit the point where locking conflicts and slow queries are a daily problem, moving the tables to SQL Server is usually what resolves it for good.
Learn MoreYuma operations that run high daily transaction volume are often the right candidate for moving table data to SQL Server while keeping the Access front end the team already knows.
Learn MoreAvondale businesses with multi-user Access files that keep corrupting or locking up are usually good migration candidates: SQL Server handles concurrent writes far more cleanly.
Learn MoreBuckeye is where we see fast-growing businesses whose Access file was fine at fifty records and is now struggling at fifty thousand. The front end stays, the back end moves.
Learn MoreCall (323) 285-0939 or use our Contact Us form. We can review the Access file, check for primary key and data type issues, and give you a honest picture of what the migration involves before any work begins.
Alison Balter is the founder, owner, and principal programmer of MS Access Solutions. She is a Microsoft Certified Solutions Developer, Microsoft Certified Professional, Microsoft Certified Trainer, and Microsoft Certified Partner.