Most businesses that call us have already tried to make something work on their own. There is a spreadsheet that got too big, or an older Access file that nobody fully understands, or a data entry process that takes twice as long as it should because the forms were never quite right. The data is there. The workflow is there. What is missing is a database that was actually built around how the business runs day to day.
MS Access Solutions builds custom Microsoft Access databases from scratch for Arizona businesses that need something done right. We design the table structure, write the queries, build the forms and reports, and add the VBA automation that keeps things from turning into a manual process again. Call (323) 285-0939 and we can talk through what you need.
Off-the-shelf software does not fit every workflow. A database built around how your team actually works cuts out the extra steps, reduces the re-entry work, and makes the reports something people trust instead of something they verify against a side spreadsheet.
A lot of database problems come back to table design. Wrong data types, missing primary keys, no relationships between tables. We build the structure first so the forms and reports have something solid to sit on. Sometimes that means rebuilding what someone else started, which is fine. We would rather fix it early than work around it later.
Generic forms slow people down. We build data entry screens around the actual sequence your staff uses, with input masks, combo boxes, and validation rules that catch problems before bad data gets into the table.
When the queries behind a report are written correctly, the numbers match. We write reports that pull from the right tables, group correctly, and print or export the way you actually need them to.
VBA code can run when a button is clicked, a record is saved, or a form opens. A scheduling database we built for an Arizona services company automatically flags overdue jobs when the file opens each morning. Nobody has to remember to check. An Arizona property management office had the same idea applied to lease renewals. The database flags upcoming expirations thirty days out so nothing slips through at month end.
A split database with a shared back end lets multiple people work at the same time without locking each other out. Not every job needs this setup, but when it does it is worth getting right at the start. Same goes for structure. A database built with proper relationships and clean code is easier to extend. Adding a new report or a new table later does not mean untangling something that was never designed for it.
We do not start writing code until we understand what you actually need. Skipping the planning stage is how databases end up with the wrong structure and forms that nobody uses.
We talk through how your team enters data, runs reports, and hands off information between people or departments. Sometimes that conversation changes what we build. An Arizona distribution company once came to us for a quoting tool and we ended up building an inventory tracking system first because that was where the actual bottleneck was.
This is where the database either works long-term or starts causing problems six months in. We map out tables, field names, data types, primary keys, and relationships before any forms get built. A common one: a date field stored as text because that is how the original spreadsheet had it. Looks fine until you try to sort by date or run a date range query. Fixing it after the forms are built takes much longer than catching it here.
We build forms around the sequence your staff actually uses, not a generic layout. Queries get written for the specific output you need. Not every query needs to pull every field. Reports get shown to you as working drafts. If something is wrong with the grouping or the layout, that is the time to say so, not after everything else is built on top of it.
VBA code for buttons, events, and any automated routines you need. Then we test with actual data from your business, not placeholder records. Edge cases show up here. That is when you find the things nobody thought to mention in the planning stage.
Custom database work covers a lot of ground. Some projects are new builds. Others are rewrites of systems that grew beyond what they were originally designed to do. We had one Arizona property management office running tenant records, maintenance requests, and lease renewals across four separate spreadsheets. Pulling all of that into one Access database with proper relationships cut their weekly reporting time by about half.
Alison Balter founded MS Access Solutions and has been doing this work for more than 36 years. She holds credentials including Microsoft Certified Solutions Developer, Microsoft Certified Professional, Microsoft Certified Trainer, and Microsoft Certified Partner. She has also written 15 books on Microsoft Access published by Sams Publishing, used in training programs across the country.
Most of the work we do for Arizona businesses happens remotely. That is not a workaround. Screen sharing, shared file access, and a clear process mean the work gets done the same way it would on-site. We have built and repaired databases for businesses in Phoenix, Scottsdale, Tucson, Mesa, and smaller Arizona markets without anyone needing to be in the the same room.
We do not take every project. If what you are describing is outside what Access handles well, we will tell you that. If an older file has problems that go deeper than a repair can reach, we will say so. Arizona businesses that have worked with us tend to come back because the advice is straight and the work holds up.
One example of that kind of work is Bombardier Inc. When MS Access Solutions first got involved, Bombardier's Tucson operation at Tucson International Airport, the largest Bombardier service center in the world, had three separate Access databases running nearly identical functionality across three airplane lines. Every form change or report update had to be done three times. Alison Balter repaired the existing database, rebuilt the queries and reports that were causing problems, and migrated the tables to SQL Server. After the Tucson build went live, Bombardier's Scottsdale office came on board. The project eventually expanded further, but the Arizona work is where it started. MS Access Solutions continues to handle database maintenance for Bombardier.
We have built Access databases for businesses in manufacturing, property management, logistics, healthcare offices, and field services since the early days of the product. The work has covered everything from single-user tracking systems to enterprise applications used across multiple sites, including a database Alison Balter built for Bombardier that now runs across all of their worldwide locations.
Some clients need a new database. Others need an existing one fixed or redesigned. We do both. Not every shop will take on a database that someone else built, but inherited work is a big part of what we handle.
All of this can be handled without anyone traveling. We review your files, talk through the requirements, build and test the database, and hand it off with documentation. Arizona clients from Tucson to Surprise have gone through this process without any on-site visits.
Alison Balter holds MCSD, MCP, MCT, and Microsoft Certified Partner credentials and has authored 15 books on Microsoft Access through Sams Publishing. Those books are still used in training programs today.
These articles go into more depth on specific Access topics that come up regularly in custom database builds and repairs.
One of the questions that comes up in almost every custom database build is where to put the data validation. Access gives you two main options: field-level validation rules set directly on the table, and VBA code that runs when a form event fires. Both work, and both have real tradeoffs that affect how the database behaves over time.
Table-level validation rules are simple and reliable. You set a rule directly on a field, and Access enforces it no matter how the record is changed. That includes imports, append queries, and any back-end updates that bypass the form. The downside is that the error message Access shows is generic and often confusing to users. You can write a custom validation text, but it still triggers after the fact, not during entry.
VBA validation in a form event gives you much more control. You can check multiple conditions, cross-reference other tables, display a clear message that explains the problem, and stop the save without disrupting what the user typed. An Arizona logistics company we worked with needed to prevent dispatch records from being saved without a valid driver assignment. A table rule could not check a related table. VBA could, and it showed a clear message the dispatcher understood immediately.
The practical answer is usually both. Use table-level rules for simple constraints like required fields, number ranges, and date logic. Use VBA for anything that involves multiple fields, related tables, or a message that needs to make sense to the person seeing it. Building both layers into the database from the start means the data stays clean even when someone finds a way around the form.
Subforms are one of the most useful things in Access and also one of the most common sources of strange behavior in databases we are asked to fix. When a subform is linked to its parent form incorrectly, the symptoms are not always obvious. Sometimes the subform shows all records instead of just the related ones. Sometimes it shows nothing at all. Sometimes it shows the right records on some forms and the wrong records on others.
The link is controlled by two properties: Link Master Fields and Link Child Fields. The master field is the field on the parent form. The child field is the matching field on the subform. They need to point to the same data value, usually the primary key of the parent record and the matching foreign key in the child table. Where it goes wrong is usually one of three things: the field names are different but pointing at the same underlying data and Access gets confused, someone typed a field name slightly wrong, or the subform is based on a query that does not include the linking field in its output.
We repaired a database for an Arizona contractor where the subform for job line items was showing every line item in the database, not just the ones for the current job. The link was set to the job number field on the parent form, but the query behind the subform was filtering by a different field name that did not match. Fixing the query output and correcting the child field name resolved it. The table structure was fine the whole time. The problem was in how the subform was wired together.
When setting up a subform, verify that the linking field is included in the subform's record source, that both field names match exactly (including spelling and capitalization), and that the data types on both sides are the same. A number field linking to a text field will not work the way you expect, even if the values look identical on screen.
Access macros are fine for simple tasks. Open a form, run a query, print a report. They are easy to set up and do not require knowing VBA. The problem shows up when the database grows and the macros start doing things they were not designed for. Error handling in macros is limited. Debugging is harder. And when something breaks, the macro often just stops without telling anyone why.
VBA gives you tools that macros do not have. You can write error handlers that catch problems and keep the database from crashing instead of letting it stop cold. You can use variables, loops, and conditions to handle situations that change based on the data. You can call external systems, write to log tables, and send emails without relying on Office automation prompts that may or may not fire depending on security settings.
Converting macros to VBA is usually not complicated. Access has a built-in converter that does most of the work. What the converter does not do is improve the logic or add error handling, so running the converter is the starting point, not the end of the job. We review converted code and add the error handling and logging that makes it usable long-term. An Arizona healthcare office came to us after a macro stopped running mid-process and corrupted a batch of records. The converted VBA with proper error handling caught the same condition on the next run and flagged it without touching the data.
Answer: It depends on scope. A few tables, entry forms, and basic reports might take two to four weeks. Anything with VBA automation, SQL Server integration, or multi-user access takes longer. We give you a timeline after reviewing what you actually need.
Answer: Most of the time it is tuning, not a rebuild. Slow queries are often missing indexes, pulling more fields than they need, or running against tables that have never been compacted. We look at query structure, table design, and indexing strategies before recommending anything. A lot of Arizona offices have gotten years more life out of an existing database with a few targeted fixes.
Answer: Yes. The right approach is a split database where each user runs their own copy of the front end and everyone connects to a shared back end on a network drive or server. This reduces locking conflicts and makes updates much easier to push out. If your team is larger or your data is growing, we can also set up linked tables to a SQL Server back end, which handles concurrent users better than a shared Access file.
Answer: We start by talking through how your team actually works, not just what you think you want to track. From there we map out the table structure and relationships before writing a single line of code. We build form and report prototypes early so you can give feedback while changes are still easy to make. After that comes the VBA and automation work, testing with real data from your business, and handoff with documentation.
Answer: That is one of the most common things we fix. When reporting depends on someone manually pulling data into a spreadsheet, the reports are not really connected to the database. They are a snapshot from the last time someone ran the export. By the time the spreadsheet gets reviewed, the numbers may already be out of date.
We build the queries and reports directly in Access so the output updates automatically whenever the data does. No more copying, no more checking whether the spreadsheet matches the file. One Arizona contractor we worked with was spending about two hours every Monday on this process. After we moved the reports into Access, it took about four clicks. The data was current because it never left the database in the first place.
Answer: All the time. Older .mdb files often have broken references, 32-bit controls that stopped working after an Office upgrade, or macros that were never converted to VBA. We assess what is salvageable and what needs to be rebuilt. Sometimes a clean upgrade to .accdb format resolves most of the issues. Other times there are structural problems that have been quietly causing trouble for years. We figure out which situation you are in before recommending next steps. Though if the file is genuinely too far gone to repair reliably, we will say that too rather than charge you to patch something that is going to keep breaking.
Answer: If the other system has an ODBC driver or can export to CSV or Excel, Access can usually read from it or write back to it. QuickBooks has an ODBC interface that Access can connect to with the right setup. For web services and APIs, we typically use VBA to call external data and bring it into Access tables on a schedule. We have handled a fair number of these integrations for Arizona businesses that needed Access to talk to something else.
These city pages cover the kinds of Microsoft Access work we handle across Arizona, from new custom database builds to repairs, automation, and SQL Server migration.
In Phoenix, we talk more about bigger rebuilds, stubborn reporting issues, and Access projects that have grown well beyond a simple spreadsheet.
Learn MoreThe Tucson page is more about cleanup, upgrades, and getting an older shared file back into dependable working order.
Learn MoreMesa leans into import cleanup, day-to-day database fixes, and the small recurring problems that waste time every week.
Learn MoreOn the Chandler page, the emphasis is on upgrades, import work, and straightening out databases that have become harder to maintain.
Learn MoreGilbert is a better fit when the main need is repair work, report fixes, and cleanup inside an older Access system.
Learn MoreGlendale puts more weight on custom database work, repair projects, and practical modernization without tearing everything apart.
Learn MoreScottsdale is where we talk about sluggish older files, modernization work, and database repairs that need more than a quick patch.
Learn MorePeoria centers more on repair work, VBA cleanup, and reporting problems that keep coming back until the structure is fixed.
Learn MoreTempe focuses on cleaner imports, steadier reports, and practical fixes when people have stopped trusting what the file is showing them.
Learn MoreWith Surprise, the conversation is often about inherited databases, overdue cleanup, and sensible updates that do not disrupt daily work.
Learn MoreGoodyear tends to fit import and export work, repair help, and follow-up updates for databases that still need more attention after an earlier fix.
Learn MoreSan Tan Valley businesses often come to us when spreadsheets have outgrown themselves and need a proper database built around how the team actually works.
Learn MoreYuma operations tend to need new builds designed for volume. Databases that handle daily intake without slowing down or requiring manual steps to stay current.
Learn MoreAvondale is a frequent fit for businesses that have never had a real database. Just spreadsheets and workarounds, needing structured tables and forms built from the ground up.
Learn MoreBuckeye is mostly first-time database builds. Businesses running on nothing but spreadsheets that need a clean starting point with proper structure from day one.
Learn MoreFlagstaff businesses get the same custom database development work we do across Arizona. New builds, form and report design, and VBA automation handled entirely remotely.
Learn MoreThe Arizona state page covers our full range of Microsoft Access work across the state, from new builds and repairs to VBA automation and SQL Server migration.
Learn MoreCall (323) 285-0939 or use our Contact Us form. We can review your current setup, talk through what you need, and give you a straight answer on whether a custom build makes sense or whether what you have can be fixed.
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.