What A Custom Database Actually Changes
Off-the-shelf software does not fit every workflow. A database built for your specific process
cuts out the extra steps, reduces re-entry work, and makes reports something people trust
instead of something they verify against a side spreadsheet.
Table Structure That Holds Up
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.
Forms That Match Your Process
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.
Reports You Do Not Have To Check
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.
Automation That Replaces Manual Steps
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.
Multi-User And Room To Grow
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.
How We Build 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.
1
Understand The Workflow
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.
2
Design The Data Structure
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.
3
Build Forms, Queries, And Reports
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.
4
Add Automation And Test With Real Data
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.
Common Custom Database Projects In Arizona
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.
What We Build
- New databases with table design, relationships, and primary keys built from scratch. That includes field names, data types, and the foreign key structure that makes queries reliable.
- Data entry forms with input masks, combo boxes, and validation rules.
- Select, action, and crosstab queries for reporting and data pulls. Crosstab queries in particular are something a lot of shops avoid because they are harder to set up. We write them when the report needs them.
- VBA modules and event procedures for automation and business rules.
- Split database setups and SQL Server or Azure SQL back ends when the data needs more than a single shared file can handle.
Signs You Need A Custom Build
- Data lives in multiple spreadsheets and nobody is sure which one is current.
- Reports require manual steps before the numbers can be trusted. Someone is assembling them by hand every week rather than pulling from a live source.
- More than one person needs to update records at the same time.
- Staff spend part of their day on copy-paste work. That time adds up, and it is usually fixable.
- The existing database was built for a smaller version of the business and has never been redesigned to match how things actually work now.
Tech Talk: Access Database Topics
These articles go into more depth on specific Access topics that come up regularly in
custom database builds and repairs.
Validation Rules Vs. VBA Validation: Choosing The Right Layer
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.
Subform Link Master/Child Field Mistakes And What They Look Like
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.
Replacing Macros With VBA For Long-Term Maintainability
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.
Ready To Build A Database That Actually Fits Your Workflow?
Call (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.