Expert guide
Scan Documents into Microsoft Access with AI
From a pile of paperwork to validated database records, without retyping
Call us at +1 (385) 386-3860
Short answer: scan or save documents into an intake folder, send each file to an AI document model with a fixed field list, write the results into an Access staging table with the file path, run validation queries (does the customer exist, are totals consistent, is it a duplicate), and review exceptions on a simple form before appending to live tables. Keep files outside the database. We build these pipelines as AI workflow automation projects.
Many businesses that run on Access still have a person whose job includes typing paper into it: delivery notes from drivers, signed timesheets, inspection sheets from the field, application forms. It is slow, it is error-prone, and the paper is usually the only copy of the evidence. AI extraction removes most of the typing while keeping the scan linked to the record.
The Pipeline at a Glance
1. Intake folder
Scanners, a shared mailbox rule or a phone app drop files into \Docs\Inbox.
2. Extract
A process sends each file to the AI model and receives JSON with the defined fields.
3. Stage
Results go into tblDocStaging with the file path and status New.
4. Validate
Queries mark each row Ready or Review with a reason.
5. Review
A form shows the scan next to the extracted fields for correction.
6. Post
An append query moves Ready rows to live tables; files move to \Docs\Processed\yyyy\mm.
Step 1: Define the Fields per Document Type
Start with one document type. For a delivery note:
{
"doc_type": "delivery_note",
"delivery_number": "string",
"delivery_date": "YYYY-MM-DD",
"customer_name": "string",
"customer_account": "string or null",
"po_number": "string or null",
"lines": [{ "sku": "string", "description": "string", "qty": number }],
"signed": true/false,
"received_by": "string or null",
"notes": "anything handwritten or unclear"
}Ask for "signed": true/false explicitly. Proof of delivery disputes are often the reason the paperwork matters at all.
Step 2: The Staging Table
| Field | Type | Purpose |
|---|---|---|
| StageID | AutoNumber | Primary key |
| FilePath | Short Text (255) | Link to the scan; never store the file itself |
| DocType | Short Text | Which schema was used |
| RawJSON | Long Text | Exactly what the AI returned, for audit |
| DeliveryNumber, DeliveryDate, CustomerName ... | Typed fields | Parsed from the JSON |
| Status | Short Text | New, Ready, Review, Posted, Rejected |
| Reason | Short Text | Why it needs review |
| ReviewedBy, ReviewedOn | Text, Date/Time | Accountability |
Lines go in a child table, tblDocStagingLines, linked by StageID. Keeping RawJSON lets you re-parse later if you change field mappings, without paying to extract the document again.
Step 3: Validation Queries
-- Unknown customer
UPDATE tblDocStaging AS s
SET s.Status = "Review", s.Reason = "Customer not found"
WHERE s.Status = "New"
AND DCount("*", "tblCustomers",
"AccountNo='" & Nz(s.CustomerAccount, "") & "'") = 0;
-- Duplicate delivery number already posted
UPDATE tblDocStaging AS s
SET s.Status = "Review", s.Reason = "Duplicate delivery number"
WHERE s.Status = "New"
AND DCount("*", "tblDeliveries",
"DeliveryNo='" & s.DeliveryNumber & "'") > 0;
-- Unsigned delivery note
UPDATE tblDocStaging SET Status = "Review", Reason = "Not signed"
WHERE Status = "New" AND Signed = False;
-- Everything else passes
UPDATE tblDocStaging SET Status = "Ready" WHERE Status = "New";Run these in order from one macro or VBA procedure. Each document gets exactly one reason, the first rule it fails, so the review queue is easy to work through.
Step 4: The Review Form
A continuous form listing Review rows with their Reason.
A detail form with the extracted fields on the left and a WebBrowser control or Edge browser control showing the PDF on the right.
Buttons: Approve (sets Ready), Reject (sets Rejected with a note), and Open file.
ReviewedBy and ReviewedOn filled automatically.
Showing the scan next to the fields is what makes review fast. Without it, reviewers open files one by one in another window and the time saved by AI disappears.
Step 5: Running the Extraction
| Approach | Good for | Notes |
|---|---|---|
| VBA in Access calling an AI API | Low volume, one site | Simple; key management needed; see our OpenAI from Access guide |
| Scheduled script or service | Steady daily volume | Runs unattended; writes to the back end or SQL Server |
| Power Automate with AI Builder | Microsoft 365 shops with SharePoint intake | Licensing cost; writes to SharePoint or Dataverse more easily than Access |
| Specialised OCR service | Very high volumes, standard documents | Per-page pricing; still needs your validation |
The VBA building block is in connecting MS Access to the OpenAI API; for vision models you send the image or PDF content as well as the instruction. The same validation thinking applied to invoices in Excel is in extracting PDF invoice data with AI.
Scanning Tips That Raise Accuracy
Scan at 300 dpi in greyscale; colour rarely helps and makes files larger.
One document per file; split batches with the scanner's blank-page or barcode separator.
Redesign your own forms with labelled boxes and printed reference numbers.
Ask field staff to photograph forms flat, in good light, filling the frame.
Add a QR code with the job number to forms you print; it removes the hardest field.
Where This Pays Off
| Industry | Document | Typical outcome |
|---|---|---|
| Distribution and logistics | Proof of delivery slips | Disputes resolved with a linked signed scan |
| Field service and HVAC | Job sheets, inspection checklists | Same-day job closure and invoicing |
| Labs and quality control | Result sheets, certificates of analysis | Searchable results linked to samples |
| Staffing agencies | Signed timesheets | Faster payroll and client billing |
| Nonprofits and schools | Application and consent forms | Clean records without retyping |
Related guides: lab sample tracking in Access and staffing agency timesheet tracking. If you are starting from scratch, a custom Access database can be designed around the documents from day one.
FAQ
Scanning documents into Access FAQ
AI extraction, file storage and accuracy