MS Access Solutions' owner is Alison Balter, who has been building and fixing Access databases since version 1.0 — before most of the businesses she works with today even had a server room. Over three-plus decades she has worked with hundreds of organizations across Phoenix, Scottsdale, Tempe, Chandler, Gilbert, Mesa, and Tucson. The work ranges from quick repairs on corrupted files to full migrations off Access into SQL Server, and a lot of things in between that don't fit neatly into either category.
MCSD — Microsoft Certified Solutions Developer
MCP — Microsoft Certified Professional
MCT — Microsoft Certified Trainer
MCPa — Microsoft Certified Partner
You can find out more about our services on the Microsoft Access Programmer Phoenix, AZ web page.
For rapid service, call us at (323) 285-0939.
Alison Balter - Owner/Principal Programmer - MS Access Solutions
There's a recognizable pattern with Access databases that have been running for a while. They work fine until they don't, and then the slide is gradual enough that nobody quite declares it a crisis. The file gets slower. Reports start taking longer than they should. One person figures out a workaround, shares it with the team, and suddenly the workaround is just how things are done.
By the time most Phoenix businesses call us, they've been living with it for months.
We look at what's actually broken versus what just needs tuning, and we fix the right things in the right order. Sometimes that's a quick repair. Sometimes it's restructuring how the file is shared across users. And if the data has outgrown what a file-based system can do reliably, we can move it to SQL Server without touching the Access interface your staff works in every day. We handle most projects remotely. Call (323) 285-0939 when you're ready to talk through it.
Most Access databases require this service. A file starts throwing errors, or forms that worked fine for two years stop opening after an Office update, or the database is technically running but noticeably slower than it used to be. Before changing anything we spend time figuring out what actually broke and why, because the visible symptom is rarely the real cause. A Phoenix clinic called us last year after an O365 update left half their intake forms unusable. Turned out to be a single broken reference that cascaded through a dozen forms. Fixed in a day, once we knew where to look. We cover Access 2003 through Microsoft 365.
Not every Access database needs to move to SQL Server, and we'll tell you honestly if yours doesn't. But when the file size is pushing past a few hundred megabytes, or you have more than eight or ten people writing to it at once, or remote staff are connecting over VPN and complaining about speed — that's usually when the conversation starts. We move the busiest tables first and leave the Access front-end your staff already knows exactly where it is. The transition is staged so people can keep working throughout.
Older databases often have a layer of macro-based automation that made sense when it was built but has become brittle over time — especially after version upgrades. We replace it with VBA event code that's easier to maintain and less likely to break quietly. We also tighten up form validation, which matters more than most people realize. Bad data caught at entry is a five-second fix. Bad data discovered in a month-end report is a much longer afternoon. Reports that have gotten slow usually have one or two fixable culprits once you look at what they're actually pulling.
If your database gets noticeably worse during busy periods — slower in the morning when everyone logs in, or during month-end close — that's almost always a structural problem rather than a hardware one. Usually it comes down to too many people hitting the same file, queries that pull more data than the form actually needs, or record locking that isn't configured for the way the office actually works. We've untangled enough of these in Phoenix to have a pretty good sense of where to start, though every file is a little different.
Most Phoenix clients have one shared database that the business runs on — orders, intake, scheduling, inventory, or compliance tracking. It was probably built years ago and has been patched and added to ever since. At some point the patches outnumber the original design. These are the situations we hear about most often, though sometimes it's a combination of two or three at once, which makes them harder to pin down quickly:
The shared file is too busy. Too many people in the same file at the same time — saving records, running reports, pulling up forms — and the whole thing slows to a crawl. Locking errors start showing up. People learn to work around them.
An Office update broke something. An O365 rollout drops an old reference, disables a control that's been there for years, or exposes VBA code that never compiled cleanly on 64-bit Office. This one tends to hit without warning.
The design never caught up with the growth. Forms loading far more records than anyone needs, queries without indexes, code that's been patched so many times nobody's sure what it's actually doing anymore.
Staff has built a workaround system. Notes apps, side spreadsheets, manual steps that exist because the database can't be trusted to do that part. Once this starts, it tends to grow.
Corruption or crashes. Usually linked to a back-end sitting in a OneDrive or SharePoint sync folder, or too many users in a single un-split file. Recoverable in most cases, but it needs attention before the next incident.
When you need help with your Access database, call us at (323) 285-0939.
Users: 18 people — sales, purchasing, warehouse
Environment: Access 2016–O365 mix; single shared ACCDB on a file server
By the time this client called us, the situation had already cost them weeks of productivity. Order entry had slowed to the point where warehouse staff were maintaining parallel records in Excel just to keep shipments moving. The database was technically still running — it just wasn't trustworthy anymore, and the workarounds had become a job in themselves.
What we found: The organization had grown into the system rather than growing the system with them. Eighteen users were reading and writing against the same physical file with no front-end and back-end split — which is the first thing we look for and one of the most common problems we see. A recent O365 rollout had also introduced a 32-bit versus 64-bit mismatch across workstations, so some staff were hitting VBA reference errors every morning. Several legacy ActiveX controls used in older forms were simply absent from the newer machines. Mapped drive letters for linked tables were inconsistent across the office, causing intermittent "table not found" failures that looked random but had a clear pattern once we traced them. Form record sources were pulling entire tables into memory rather than filtered subsets.
Week one was about stopping the bleeding. We resolved the Office version conflicts, replaced the missing controls with native equivalents, repaired corrupted objects, and got everyone past the daily error messages. That part went reasonably smoothly — the reference issues were straightforward once we had a full picture of which workstations were running which Office build.
Week two was the structural work, and it took longer than we originally scoped. Splitting the database and deploying per-user ACCDE front-ends with an auto-updater was straightforward. Getting the table links reliably switched to UNC paths — and making sure the relink manager handled every edge case across 18 different workstations — took an extra day we hadn't planned for. Worth it, but worth mentioning. We also reworked the slowest forms to load only the records they actually needed, which is where most of the speed improvement came from.
Week three was reporting, documentation, and handoff. Slower reports were rebuilt using temp tables. An audit log was added. We delivered a runbook covering deployment steps, relink procedures, and the fixes for the three most common issues the IT person was likely to see in the first six months.
Results after go-live:
Order-entry form load time dropped from 9–12 seconds to ~1.2 seconds
Crashes fell from daily incidents to zero in the first 45 days
End-of-day pack-slip report ran ~68% faster
Support tickets fell by ~75% — the reference and ActiveX errors disappeared entirely
A warehouse user's comment the first week: "Feels instant — no more guessing if it saved."
The database didn't need to be replaced. It needed to be set up properly. That's true more often than people expect — the data model was fine, the underlying logic was fine, the problems were almost entirely in how the file was deployed and maintained. Not every situation works out this cleanly, but this one was a good example of what's possible when the structure is sound. When you need Microasoft Access database repairs, call us at (323) 285-0939.
Alison's staff helped us convert our scattered inventory spreadsheets into a centralized, solid MS Access database. It has been a real improvement for our Phoenix distribution center's speed.
— John D., Operations Manager, Phoenix, AZ
The VBA automation they built for our client intake Access application saved us hours of manual entry every day. Excellent service for our downtown office location.
— Sarah K., Clinic Administrator, Phoenix, AZ
Alison Balter at MS Access Solutions developed an application that automates many tasks we used to do manually, letting our employees use their time more effectively. This client/server system runs in our Phoenix and New York offices.
— Lisa Dosch, Motion Picture Editors Guild — Local 700, Phoenix, AZ
MS Access Solutions provided our staff with training in Visual Basic, client/server development, SQL Server, and Microsoft Access, helping our in-house programmers overcome many hurdles. Our developers still use Alison Balter's books as a desk reference.
— Sheldon Bloch, Oil and Gas Company
Usually it's a combination of things that built up gradually. A form that used to open against a few thousand records now opens against fifty thousand because nobody trimmed the old data. A report adds a join here, an extra column there, and suddenly it takes three minutes to run something that used to take thirty seconds. Combo boxes that recalculate on every keystroke. Queries that were written without indexes because they were fast enough at the time.
The honest answer is that figuring out which of these is actually causing the slowdown takes some digging — you can't always tell from the outside. We time the slowest operations first, then work backwards. Sometimes it's one obvious culprit. Sometimes it's four smaller things that add up. Compact and Repair helps with file bloat but it won't fix a slow query, so it's worth being specific about what's actually dragging.
Splitting the database is the starting point — tables in a shared back-end file on a server, and a local copy of the front-end on each workstation. That alone eliminates a whole category of conflicts. A lot of Phoenix offices we hear from are still running a single shared file where everyone opens the same ACCDB, which means every save is competing with every other save happening at the same time.
Beyond the split, we set record locking to Edited Records rather than the default, and we shorten transactions where possible so that a locked record doesn't stay locked longer than it needs to. It's not a perfect system — Access isn't SQL Server — but for most offices with under fifteen or twenty users it works reliably once it's set up correctly.
There's no single number, but the signs are usually pretty clear when you get there. Saves are noticeably slow. Reports that touch a lot of records are timing out. Remote staff connecting over VPN are having a much worse experience than people in the office. The back-end file is pushing past a few hundred megabytes and growing steadily.
The tradeoff worth knowing upfront: moving to SQL Server is a bigger project than most repairs, and it's not always necessary. If your user count is under ten and the file is well-structured, there's often a lot of headroom left in Access that tuning can recover. We'll tell you honestly which situation you're in before recommending either direction.
No — and this comes up more than it used to, because a lot of Phoenix offices moved to cloud storage during the pandemic and never fully separated document storage from database storage. The problem is that sync clients like OneDrive treat the ACCDB file the way they'd treat any document, syncing it in the background while it's being used. That creates partial writes and file conflicts that show up as corruption — sometimes gradually, sometimes all at once.
If you need remote access to the data, the better options are a properly configured remote desktop session, or moving the data to SQL Server or Azure SQL where the back-end lives in a database engine rather than a sync folder. Documents and databases have different needs and shouldn't share the same storage approach.
We've dealt with this more times than we can count, especially in the last few years as organizations rolled out O365. When Office updates, Access can lose references to libraries it was pointing at, disable ActiveX controls that no longer ship with the new version, or expose VBA code that was technically broken but never caused visible errors until now.
The 32-bit to 64-bit jump is its own category of problem. Code that ran fine on 32-bit Office often needs changes to run on 64-bit — particularly anything using API calls or older third-party controls. The fix is to audit the references, replace anything that's gone, and recompile to a clean ACCDE so every workstation is running the same build. Not glamorous work, but it's usually faster than it sounds once you know what you're looking for.
The imports that cause the most trouble are the ones that work fine for six months and then quietly break when someone upstream changes the format — a new column gets added, a date field switches from MM/DD/YYYY to YYYY-MM-DD, or the ID that was unique stops being unique because the source system changed. By the time anyone notices, there are duplicates in the live tables.
The approach that holds up over time is to import into a staging table first, validate types and uniqueness before anything moves to production, and log what was accepted versus rejected so the errors are visible rather than silent. If your staff imports weekly files, we can automate the whole process so it runs the same way every time and flags problems rather than hiding them.
More often than people expect, yes — but it depends on how the corruption happened and how far it's progressed. Files that corrupted because of a network interruption during a save, or because they were sitting in a sync folder, usually have recoverable data even if the file itself won't open. Files that have been slowly corrupting for months with nobody noticing are harder.
The first thing we do is work from a copy, never the live file. Compact and Repair is the right first step if the file still opens. If it doesn't, there are other approaches — extracting table data directly, rebuilding the front-end around a cleaner copy of the back-end. We can usually give you a realistic picture within an hour or two of looking at it. The more current your backups are, the more options you have, which is why we always recommend verified nightly backups as part of any long-term setup.
Got questions about your Access database? Call us at (323) 285-0939.
We work with businesses across Phoenix and throughout the Valley including Scottsdale, Tempe, Chandler, Gilbert, Mesa, Glendale, Peoria. The majority of our work is done remotely, which means most Phoenix-area clients never need us on-site. For the ones that do, we've made the drive out to Chandler and Gilbert more times than we can count. We also work with a steady number of Tucson businesses, and a handful of clients in smaller Arizona cities who found us because nobody local works in Access anymore.
More Arizona coverage:
If you're not sure whether the file needs a repair, a structural change, or a move to SQL Server — that's exactly the kind of conversation Alison has every week. Most of the time she can tell you within the first call what category of problem you're dealing with and roughly what it would take to fix. No charge for that.
Business: MS Access Solutions
Phone: (323) 285-0939
Hours: Monday – Friday, 8:00 am – 5:00 pm
Principal: Alison Balter, MCSD, MCP, MCT, MCPa
Service Area: Phoenix, Scottsdale, Tempe, Chandler, Gilbert, Mesa, Tucson, and all of Arizona