First Published 24 Sept 2023 Last Updated 1 May 2026



This article discusses the known SysCmd (system command) actions available in Access.

The syntax is: SysCmd(Action, Argument2, Argument3) where the Action is required and the other 2 arguments are used in certain cases

Several of these are fully documented at AcSysCmdAction enumeration (Access) as follows:

1.   Documented SysCmd values

Value Name Description Comment
1 acSysCmdInitMeter Initializes the progress meter. You must specify the argument1 and argument2 arguments when you use this action.
2 acSysCmdUpdateMeter Updates the progress meter with the specified value. You must specify the text argument when you use this action.
3 acSysCmdRemoveMeter Removes the progress meter.
4 acSysCmdSetStatus Sets the status bar text to the text argument.
5 acSysCmdClearStatus Provides information on the state of a database object.
6 acSysCmdRuntime Returns True (1) if a run-time version of Microsoft Access is running.
7 acSysCmdAccessVer Returns the version number of Microsoft Access.
8 acSysCmdIniFile Returns the name of the .ini file associated with Microsoft Access.
9 acSysCmdAccessDir Returns the name of the directory where Msaccess.exe is located.
10 acSysCmdGetObjectState Returns the state of the specified database object. You must specify argument1 and argument2 when you use this action value.
11 acSysCmdClearHelpTopic
12 acSysCmdProfile Returns the /profile setting specified by the user when starting Microsoft Access from the command line. Not used with ACCDB files
13 acSysCmdGetWorkgroupFile Returns the path to the workgroup file (System.mdw). Not used in ACCDB files



In each case, you can either use the SysCmd enumeration value or its name.
For example SysCmd (7) and SysCmd(acSysCmdAccessVer) will both return the same value e.g. 14.0 in Access 2010 or 16.0 in Access 2016 or later

The most recent addition to this list, SysCmd(603) is used to convert an external database from an ACCDB (or MDB file) to a compiled version (ACCDE/MDE).
The syntax used is: appAcc.SysCmd 603, strACCDBSourcePath, strACCDEDestinationPath where appAcc is a Access object used in automation.

For more details, see my article Create ACCDB & ACCDE Files Using Code



2.   Undocumented SysCmd values

There are a number of other very useful SysCmd values that are undocumented and therefore not supported.

Information about each of these is elusive with the most comprehensive list currently available at the excellent website run by Wayne Phillips: EverythingAccess.com
Most of the following information is taken from that site:

Value Description Comment Notes (see below)
500 Count VBA references (Access 97 only) Return value is the same as Access.References.Count. Discontinued
504 Save all modules - requires Flag value SysCmd 504,16483: save and compile all modules
SysCmd 504,16484: save all modules without compiling
555 create MSysIMEXSpecs & MSysIMEXColumns system tables The two system tables used to store import/export configurations are not created by default.
Very useful to create IMEX specs in an external database
602 Compact database without repair (Access 97 only) Must be run from another application SysCmd(602, strPathSourceMdb, [strPathDestinationMdb]) Discontinued
603 System compile Create an ACCDE file from ACCDB (or MDE from MDB)

Undocumented for over 20 years. Officially named as acSysCmdCompile and supported from Access version 2308 onwards. Also now documented
605 Convert current database to Access 97 format (A2000-2007 only) SysCmd(605, strPathOutput) Discontinued
607 Convert to ADP project without tables / queries (A2000-2007 only) SysCmd(607,strProjectPath) Discontinued
608 View Office Assistant Tips as Strings (A2000+) SysCmd(608, intTipID) Discontinued
609 Returns the PID (Process ID) of the currently running MSAccess.exe process Discontinued
710 Set Application Instance Keyboard Type SysCmd(710, InputLocaleID)
This affects the current application instance only and is not saved with the database
711 Get Application Instance Keyboard Type This command returns the current InputLocaleID used by the application
712 Get IPictureDisp from Image Control (A2000+) Returns a pointer to the IPictureDisp interface behind an image control.
714 Are any objects in Design View? Returns True if any form/report/macro/module is open in design view. Otherwise False
715 Returns Office MSO major build version e.g. 16907 Can combine with SysCmd(7) e.g. 16.0.16907
There is no SysCmd action to return the minor build version.

Officially named as acSysCmdGetMsoBuildNumber and supported from Beta version 2604
See version commands below



See my article In Praise Of SysCmd(555) for details on using this specific action to manage import/export specifications in external databases using automation.

I recently submitted a formal request for the most useful of these undocumented SysCmd values that still work in current versions to be officially supported / documented.
In particular, SysCmd values 504, 555 and 715.

The Notes column above will be updated if/when this happens.

NOTE:
1.   If you support this request, PLEASE vote for it in the Access feedback portal:   Please officially support these undocumented SysCmd actions

2.   If you are aware of any other undocumented SysCmd actions not listed above, please let me know using the Feedback form below so I can add them to this article.



3.   New Version SysCmd values (UPDATED 2026-04-25)

Some excellent news! Six new SysCmd values related to Access version information have just been made available to the Current Channel (version 2604 19929.20090)

Back in 2023, I asked that a new SysCmd value be created that will return the full Access version, build and bitness information.
For example: Access 365 32-bit Version 2310 (Build 16907.20000 Click to Run) - Beta Channel

See my Feedback portal request:   Create a new SysCmd action to return the full Office version / build & bitness info

It was already possible to obtain all of this information by other methods. For example, using my free Access/Windows Version Checker add-in for Access.

AVC
However, until now, in order to get all this information using code, I have needed to use several VBA functions including WMI code, check multiple registry settings and perform a web scrape from an online Microsoft help article to get the YYMM version number! It works and is very fast but also extremely convoluted!
There has also been the risk that registry settings or the URL for the Microsoft help page could be changed at any time.

The announcement that, starting with version 2604, 6 new SysCmd actions are now available to supply this information is therefore VERY welcome.
The new actions are all named and officially supported as is the existing SysCmd 715. All are also now documented by Microsoft: AcSysCmdAction enumeration (Access)

The new SysCmd actions are included with all supported Access versions: 365, 2024 & 2021 - Click to Run Consumer editions only (NOT LTSC) and are also available in the equivalent editions of Access 2016 and 2019.

New Version SysCmd Actions
Full details of each are as follows:

Value Name Description Example Values
715 acSysCmdGetMsoBuildNumber Office MSO.dll major build number (long integer) 19922
720 acSysCmdGetFullVersion Full Office build information (string ) Microsoft Access (Version 2604) Build 16.0.19922.20000 Beta Channel 64-bit
721 acSysCmdGetVersion YYMM version (long integer) 2604
722 acSysCmdGetFullBuildNumber Full major / minor build number (string) 16.0.19922.20000
723 acSysCmdGetChannelName Update channel name (string) Beta Channel / Current Channel etc
724 acSysCmdGetBitness Office bitness (string) 32-bit or 64-bit
725 acSysCmdGetBuildNumber Office build number (long integer) 19922



NOTE:
acSysCmdGetMsoBuildNumber (715) returns the MSO.DLL build number and acSysCmdGetBuildNumber (725) returns the Office build number.
The MSO and Office build numbers are often identical but may be different in some builds.



Related articles

Blog article on this website:     In Praise Of SysCmd(555)     First published 24 Sept 2023
Access Forever blog article:     New SysCmd actions: Version Info     First published 25 Apr 2026



Feedback

Please use the E-Mail button in the contact form below to let me know whether you found this article useful or if you have any questions.

Please also consider making a donation towards the costs of maintaining this website. Thank you.


Colin Riddington Mendip Data Systems Last Updated 1 May 2026




Return to Access Blog Page




Return to Top