Step-by-Step: Integrating a Check Writer with Microsoft Access
Overview
This guide walks through integrating a check-writing solution into a Microsoft Access database so you can generate, preview, and print checks directly from Access records. Assumes Access 2016–2021 or Microsoft 365 Access and a preconfigured check writer (third-party add-in or custom module).
Before you start
- Backup: Create a copy of your Access database.
- Check specs: Know your check stock layout (micr line, check size, printable areas).
- Permissions: Ensure you can install add-ins and run VBA macros.
- Printer: Use a printer capable of accurate alignment; install printer drivers.
1. Choose a check writer method
- Third-party add-in: Easiest—installs as ribbon/menu item and handles MICR, alignment, security.
- VBA + ActiveX/COM control: Use a vendor COM library for check formatting and MICR fonts.
- Native VBA approach: Programmatically format and print using Access reports with MICR TrueType font.
Assume using an Access report + MICR font (widest compatibility).
2. Install MICR font and test
- Obtain a certified MICR E-13B TrueType font from a reputable vendor.
- Install on the machine used for design and printing.
- Open Word or Notepad, type sample MICR characters (e.g., transit, account, check number) and print to verify appearance.
3. Design a Check Report in Access
- In Access, create a new Report in Design View.
- Set Page Size and Margins to match your check stock.
- Add text boxes bound to your checks table/query fields:
- PayeeName
- AmountNumeric
- AmountWords (you can generate in VBA)
- Date
- Memo
- CheckNumber
- RoutingNumber, AccountNumber
- Place fields at exact coordinates matching physical check layout (use rulers/guides).
- For MICR line, use a text box with the MICR font and a control source combining routing/account/check numbers with required delimiters.
4. Generate Amount in Words (VBA helper)
- Add a VBA function to convert numeric amount to words and reference it in the report:
vb
Public Function AmountToWords(ByVal Amt As Currency) As String ’ Simple wrapper — replace with full implementationAmountToWords = Format(Amt, "Currency")End Function
- Bind AmountWords to: =AmountToWords([AmountNumeric])
5. Create a Print/Preview Workflow
- Build a form to select invoices/checks to process (single or batch).
- Add buttons for:
- Preview Selected Checks: DoCmd.OpenReport “rptCheck”, acViewPreview, , “CheckID IN(…)”
- Print Selected Checks: DoCmd.OpenReport “rptCheck”, acViewNormal, , “CheckID IN(…)”
- For batch printing, loop selected records in VBA and call OpenReport per record or use a query filter.
6. Handle Alignment and Test Printing
- Print to plain paper first and hold under check stock to verify placement.
- Adjust report controls incrementally until fields align perfectly.
- Save printer-specific settings; alignment can vary by printer model.
7. Security & Audit
- Restrict who can print checks via user-level logic (login form, role field).
- Log prints to a CheckPrints table with CheckID, User, Timestamp, PrinterName.
- Consider watermarking voided/previews.
8. MICR & Bank Requirements
- Ensure MICR font quality and toner density meet bank processing specs.
- Test with your bank before producing live checks—some banks require sample approval.
9. Troubleshooting
- Misaligned prints: adjust margins and control positions; check printer scaling (set to 100%).
- Blurry MICR: use laser printer and genuine toner; avoid low-quality inkjets.
- Font missing at print time: install MICR font on the print server and all client PCs.
10. Alternatives & Scaling
- For multi-user environments, consider a centralized print server or a dedicated check-printing service.
- For higher security/compliance, use a third-party check printing provider with
Leave a Reply