Expert guide
Auto Repair Shop Database in Microsoft Access
Vehicle history at the counter, accurate repair orders, and reminders that bring customers back
Call us at +1 (385) 386-3860
Short answer: build related tables for Customers, Vehicles (VIN, plate, mileage), Repair Orders, RO Lines (labour and parts), Parts, Technicians and Payments. Every RO links to a vehicle so history follows the car. Add queries for technician efficiency (flagged ÷ clocked hours), parts margin, open ROs by status, and vehicles due for service. Our work order management database is a strong starting point for shop systems.
Independent repair shops live on repeat customers and accurate tickets. When a car comes back, the service writer needs its history in seconds: last oil change, the brake recommendation that was declined in spring, the warranty on the alternator fitted last year. Paper files and generic invoicing tools cannot give that. A purpose-built Access database can, at a fraction of the cost of shop software that charges per seat.
Core Tables
| Table | Key fields |
|---|---|
| tblCustomers | CustomerID, Name, Phone, Email, PreferredContact, Fleet (Y/N) |
| tblVehicles | VehicleID, CustomerID, VIN, Plate, Year, Make, Model, Engine, LastMileage |
| tblROs | ROID, RONumber, VehicleID, OpenedOn, MileageIn, Concern, Status, ServiceWriter, ClosedOn |
| tblROLines | LineID, ROID, LineType (Labour/Part/Fee), Description, TechID, FlagHours, PartID, Qty, Cost, Price, Approved, Declined |
| tblParts | PartID, PartNo, Description, Supplier, OnHand, Cost, Price |
| tblTechnicians | TechID, Name, LabourRate |
| tblClockings | TechID, ROID, StartTime, EndTime |
| tblPayments | PaymentID, ROID, Amount, Method, PaidOn |
The Repair Order Workflow
Check-in
Search by plate, VIN or phone. Show the last five ROs and any declined recommendations.
Inspection and estimate
Add labour and part lines with Approved left blank.
Authorisation
Record which lines the customer approved or declined, with time and method.
Work
Technicians clock on and off the RO; parts are issued from stock.
Close and invoice
Totals, tax, payment and the next service reminder set automatically.
Declined lines are valuable. A query of declined recommendations from the last six months, by vehicle, is a ready-made follow-up list worth far more than a generic promotion.
Key Queries
Technician efficiency for the week
SELECT t.Name,
Sum(l.FlagHours) AS Flagged,
(SELECT Sum(DateDiff("n", c.StartTime, c.EndTime)) / 60
FROM tblClockings AS c
WHERE c.TechID = t.TechID
AND c.StartTime >= Date() - Weekday(Date(), 2) + 1) AS Clocked,
Sum(l.FlagHours) / Nz((SELECT Sum(DateDiff("n", c2.StartTime, c2.EndTime)) / 60
FROM tblClockings AS c2 WHERE c2.TechID = t.TechID
AND c2.StartTime >= Date() - Weekday(Date(), 2) + 1), 1) AS Efficiency
FROM (tblTechnicians AS t
INNER JOIN tblROLines AS l ON t.TechID = l.TechID)
INNER JOIN tblROs AS r ON l.ROID = r.ROID
WHERE r.ClosedOn >= Date() - Weekday(Date(), 2) + 1 AND l.LineType = "Labour"
GROUP BY t.TechID, t.Name;Date() - Weekday(Date(), 2) + 1 returns this week's Monday. In a production build, split clocked hours into its own saved query and join it; it is easier to read and faster.
Parts margin by month
SELECT Format(r.ClosedOn, "yyyy-mm") AS Month,
Sum(l.Qty * l.Price) AS PartsSales,
Sum(l.Qty * l.Cost) AS PartsCost,
1 - Sum(l.Qty * l.Cost) / Sum(l.Qty * l.Price) AS PartsMargin
FROM tblROLines AS l INNER JOIN tblROs AS r ON l.ROID = r.ROID
WHERE l.LineType = "Part" AND l.Approved = True AND r.Status = "Closed"
GROUP BY Format(r.ClosedOn, "yyyy-mm");Vehicles due for service
SELECT c.Name, c.Phone, c.Email, v.Year, v.Make, v.Model, v.Plate,
v.NextServiceDate, v.NextServiceMileage
FROM tblVehicles AS v INNER JOIN tblCustomers AS c ON v.CustomerID = c.CustomerID
WHERE v.NextServiceDate Between Date() And Date() + 30
ORDER BY v.NextServiceDate;Shop Dashboard
| Metric | Why it matters |
|---|---|
| Car count per day / week | Volume trend |
| Average RO value | Upsell and pricing effectiveness |
| Labour and parts gross profit % | Where the money is made |
| Technician efficiency | Training, pay plans and scheduling |
| Declined work value | Follow-up opportunity |
| Comebacks | Same vehicle back within 30 days for the same concern |
Where AI Helps at the Counter
Turn technician shorthand ('LF pads 3mm rotors scored rec repl') into a clear sentence for the customer.
Summarise a vehicle's history before the appointment: last visits, declined items, open warranties.
Structure customer complaints from phone notes into a concern statement for the technician.
Draft follow-up messages for declined work, mentioning the specific recommendation.
The Access-to-AI integration is described in connecting MS Access to the OpenAI API. Keep pricing and diagnostic decisions with the shop.
Build Notes for a Shop Network
Split the database: back end on a reliable PC or small server, front end on each counter and bay PC.
Wired connections, not Wi-Fi, for PCs that write to the database; see our guide on corruption over networks.
Barcode scanning for parts issue speeds up the bay and keeps stock accurate.
Invoice and payment export to your accounting software instead of retyping.
Network reliability is covered in Access corruption over LAN, Wi-Fi and VPN. For parts stock, see the Access inventory tracker, and for receivables, the invoice and payment tracker.
FAQ
Auto repair shop database FAQ
Repair orders, efficiency and reminders