Expert guide

Deploy an Access Application with the Free Access Runtime

Give every user the application, not the design tools, and without buying Access for each seat

Short answer: install the free Microsoft Access Runtime (matching the PC's Office bitness) on user machines, distribute a compiled .accde front end with a startup form and custom navigation, add error handling everywhere because unhandled errors close the Runtime, mark the application folder as a Trusted Location, and test with the /runtime switch before release. An Access consultant can package and harden an existing database for Runtime deployment.

Many Access applications are used by people who should never be in Design View: warehouse staff, receptionists, field coordinators. The Access Runtime is made for them. It runs your application, costs nothing, and removes the temptation to "just fix that form". Deploying to the Runtime does change a few things, and applications that ignore them crash in ways that are hard to diagnose remotely.

Full Access vs Runtime

CapabilityFull AccessAccess Runtime
Open forms and reports, enter dataYesYes
Run VBA and macrosYesYes (in trusted locations)
Design View, new objectsYesNo
Navigation pane and full ribbonYesNo; your own menus only
Unhandled VBA errorDebug dialogApplication closes
CostLicence per userFree

Step 1: Prepare the Application

  • Startup form

    File → Options → Current Database → Display Form: a main menu or dashboard. Runtime users have no navigation pane.

  • Navigation

    Every form and report must be reachable from buttons, a navigation form or a custom ribbon.

  • Custom ribbon or none

    Provide a simple ribbon (USysRibbons table) with Print, Export to PDF and Close, or hide it.

  • Error handling everywhere

    Every event procedure and public function gets an error handler that logs and shows a friendly message.

  • Split database

    Front end with forms and code, back end with data on the server.

Standard handler pattern:
Private Sub cmdPost_Click()
    On Error GoTo Fail
    ' ... work ...
    Exit Sub
Fail:
    LogError "frmInvoices.cmdPost_Click", Err.Number, Err.Description
    MsgBox "Sorry, that did not work. The error has been logged." & vbCrLf & _
           Err.Description, vbExclamation
End Sub

LogError writes to a table in the back end with the user, time, procedure and message. When a Runtime user calls with "it closed on me", the log tells you where.

Step 2: Build an .accde

  • Compile (Debug → Compile) with no errors.

  • File → Save As → Make ACCDE. VBA source is removed and the file cannot be edited in Design View.

  • Build the .accde in the same bitness as the users' Office (32 or 64-bit).

  • Keep the .accdb master safe; you cannot get design back from an .accde.

Step 3: Test in Runtime Mode

Shortcut target for testing on a developer PC:
"C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE" /runtime "C:\Apps\Ops\Ops_FE.accde"

Click through every menu, run every report, and deliberately trigger errors (bad input, missing back end). Anything that closes the application needs an error handler.

Step 4: Install on User PCs

  • Download the Microsoft 365 Access Runtime from Microsoft and install the version matching the PC's Office bitness. If Office is not installed, choose the bitness you compiled for.

  • Create the local application folder (for example %LOCALAPPDATA%\Ops) and copy the front end.

  • Add the folder as a Trusted Location via registry (see our trusted locations guide).

  • Create a desktop shortcut to the local front end.

  • Run the application once and confirm links to the back end work.

Trusted Location registry keys are explained in Access trusted locations and the security warning; automatic front-end updates and relinking in splitting an Access database and relinking tables with VBA.

Things That Behave Differently in the Runtime

FeatureWhat to do
Filter by form, sort and find from the ribbonProvide buttons or right-click menus on forms
Export to Excel / PDF from the ribbonAdd buttons that call DoCmd.OutputTo
Opening objects not linked from menusImpossible; plan navigation for everything
Macros in untrusted locationsBlocked; use Trusted Locations
Design-time features in code (CreateForm etc.)Not available; avoid

Remote Users

For users outside the office, install the Runtime on a remote desktop server and give each user their own front end in their profile, rather than running Access over VPN to the back end. That keeps the database fast and avoids the corruption risks in Access over LAN, Wi-Fi and VPN. Hardening code for Runtime use is part of our Access VBA development work.

FAQ

Access Runtime deployment FAQ

Bitness, testing, errors and security

The Access Runtime is a free download from Microsoft that lets people run Access applications without a full Access licence. Users can open forms, run reports and use VBA-driven features, but they cannot open objects in Design View, create new objects, or see the full Access ribbon and navigation pane.

Yes. Install the 32-bit Runtime alongside 32-bit Office and the 64-bit Runtime alongside 64-bit Office; mixed bitness installs of Office components are not supported. If you distribute an .accde, compile it in the same bitness the users will run.

In the Runtime, an unhandled VBA error ends the application instead of showing the debug window. Every procedure that can fail needs an error handler, and macros should use error handling actions. Testing in Runtime mode before release catches these.

Create a shortcut that starts MSACCESS.EXE with the /runtime switch followed by the database path, or rename a copy of the file to the .accdr extension. Access then behaves like the Runtime, so you can see exactly what users will experience.

In the Runtime, untrusted databases show a security notice and macros may not run. Put the application folder in a Trusted Location on each PC, set via the registry by your installer or a script, so it opens without prompts.