Step-by-Step: Integrating a Check Writer with Microsoft Access

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

  1. Obtain a certified MICR E-13B TrueType font from a reputable vendor.
  2. Install on the machine used for design and printing.
  3. 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

  1. In Access, create a new Report in Design View.
  2. Set Page Size and Margins to match your check stock.
  3. Add text boxes bound to your checks table/query fields:
    • PayeeName
    • AmountNumeric
    • AmountWords (you can generate in VBA)
    • Date
    • Memo
    • CheckNumber
    • RoutingNumber, AccountNumber
  4. Place fields at exact coordinates matching physical check layout (use rulers/guides).
  5. 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 implementation

AmountToWords = Format(Amt, "Currency") 

End Function

  • Bind AmountWords to: =AmountToWords([AmountNumeric])

5. Create a Print/Preview Workflow

  1. Build a form to select invoices/checks to process (single or batch).
  2. Add buttons for:
    • Preview Selected Checks: DoCmd.OpenReport “rptCheck”, acViewPreview, , “CheckID IN(…)”
    • Print Selected Checks: DoCmd.OpenReport “rptCheck”, acViewNormal, , “CheckID IN(…)”
  3. 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

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *