Download Page


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

How to install

Use the inbuilt MS ACCESS Add-In Manager to install this tool.
Start it with (Database) Tools->Add-Ins->Add-In Manager.

How to use

Open the Access DB you want to analyze
Navigate in the menu to (Database) Tools->Add-Ins->Dependency Checker and the Startup Screen should pop up.


Here the latest version for download: ACCESS Dependency Checker 2.0.1

If you encounter problems with the above version  and you have a 64-bit Office please try this version: ACCESS Dependency Checker 2.0.1 64bit

If you have issues with the latest changes, you might want to try the older version (1.0.2).


2.0.1 (04-Jun-2017)

  • Fixed Run-Time Errors
    Fix: Avoids RTE for Empty Cells on Forms (new Access feature)

2.0.0 (03-Jan-2016)

  • 64-bit ready
    Change: Switched to all-VBA Treeview (thanks to Jan Karel Pieterse for creating it)
    Change: Switched to VBA progress bar (avoiding 32-bit ActiveX control)
    Change: Universal API calls working under 32 and 64 bit Office
  • Wide-screen mode
    Add: New option on startup screen for wide screen mode
    Add: Now all data on one form (if new option has been selected)
  • Covering more dependencies
    Add: Now covering custom forms
    Add: Now supporting new macro actions: SetLocalVar, RefreshRecord, RunDataMacro, ImportExportData, ImportExportText, ImportExportSpreadsheet, ImportSharePointList, SetParameter
    Add: Now supporting new query type "Bulk Pass-Through"
    Add: Now supporting new table field type "Attachment"
    Add: Now finding objects as arguments in functions used in SQL (like DLookup() in Fieldslist of Query)
    Add: Now finding objects as arguments in functions used in CommandBarControls
    Add: Now finding object names in textbox control sources
  • Misc
    Fix: No RTE if using parameter in fieldlist of a query

1.0.2 (08-Mar-2014)

  • Fixed Run-Time Errors
    Fix: Now using the font of the VBA IDE on the details form (enumerating the system fonts created a RTE on some systems)
    Fix: Now handling objects with names containing special RegEx characters correctly
    Fix: No RTE/error anymore if macro has a backslash at end of a string
  • Misc
    Add: Now ignoring the new EmptyCell control (introduced with AC2010)
    Add: Added rudimentary support for navigation, webbrowser and attachment control
    Fix: Allow =FunctionName (with =) for RunCode Argument
    Fix: Fixed the "Refresh" of the analysis
    Fix: now finding query and table names in square brackets during brute force analysis
    Fix: solved problem with report footer if unusual or many sections are used
    Fix: now handling split macro lines correctly if the string contains escaped characters
    Fix: Fixing transfer of popup menu into clean DB

1.0.1 (24-Apr-2013)

  • Export into clean DB
    Add: Nodes flagged for export are now marked with a different back color
    Add: added copying of icons used in custom menus
    Add: added copying more properties of command bars
    Fix: avoid RTE if known property shall be created in new DB
    Fix: avoid RTE when copying shortcut menu
    Fix: avoid RTE when DB contains embedded macros
  • Misc
    Fix: Solved problems on very large (multi-monitor) screens
    Change: Improved bug reports for some cases
    Add: Added name of parent of embedded macros to displayed name
    Fix: Fixed a couple minor bugs

1.0.0 (30-Dec-2011)

  • Export into clean DB
    Add: Added command bars to the scope of this feature
    Add: Added startup options and DB properties
    Add: Include AutoKeys macro
  • Fixed Run-Time Errors
    Fix: avoided usage of Mid() in a query what caused RTEs in some configurations
    Fix: avoid RTE if data that shall be copied to Excel starts with = * + -
    Fix: avoid RTE if using picture embedded in object frame
    Fix: avoid RTEs if listbox context menu on main is called without an entry selected
  • Misc
    Add: Added linked commandbar names to content for forms and controls
    Fix: avoid false missings if a control name starts with a number
    Fix: now parsing procedures called by a macro with an argument correctly
    Fix: now handling escaped double quotes in macros correctly
    Fix: no missing source if SendObject, OutputTo etc. do not contain an object name'

1.0.0b (10-Apr-2011)

  • Export features
    Add: Added ability to export any portion of a treeview (as shown) to Excel
    Add: Feature to export objects and all their dependencies into a clean DB
    Add: Feature to export a list for all required objects for a given one (called dependency chain)
    Fix: avoid redundant entries in tADC_ObjectLinks for code links (found by real parsing _and_ brute force text search)
  • User Interface
    Add: Better bug report and more graceful behaviour when creating a DB object with a too long name
    Add: Allow user to continue if max number of expansions for "Expand below" has been exceeded
    Change: Unified message windows if user acknowledgement is required
    Add: Added option to hide unlinked children in treeview
    Add: remember treeview style and 'hide unlinked children' status
    Change: New flyout menu in treeview instead of two drop-downs
    Fix: avoid RTE when resizing forms on super large screens
  • Dependencies
    Add: added coverage for "ApplyFilter" macro action
    Add: now listing all table fields, not only linked ones
    Add: does now find nested VBA function calls in SQL
    Add: added coverage for embedded macros available since Access 2007
    Fix: now handling nested queries with alias like "SELECT * FROM (SELECT * FROM tTable) as t" correctly
    Fix: reduced false positives in code: reports, macros and commandbars followed by a space will not be found any longer
  • Misc
    Fix: added '^' (bitwise exclusive or) to valid tokens in an SQL string
    Fix: added missing line feeds in content of controls
    Fix: avoid RTE when started in A2010 without a loaded DB
    Fix: avoid RTE when trying to open an unaccessible table in design mode
    Fix: improved IsSQL() so that preceding spaces in handwritten SQL do not confuse the function
    Fix: changed a couple Integer to Long to allow for DBs with more than 2^15 objects or object links

0.9.10 (26-Sep-2010)

  • Fix: no RTE now when using embedded macros in Access 2007/2010
    Fix: no RTE now when trying to open a missing object in design view
  • Fix: no RTE now if trying to load a stored analysis that is incompatible (due to new version)
  • Fix: no RTE now if the "Switchboard Items" table is a linked table and not reachable
  • Add: added keyboard shortcut to add-in name

0.9.9 (25-Aug-2010)

  • Covered dependencies
    Add: now covering VBA calls to procedures in form/report module
    Add: now correctly linking custom toolbars for forms/reports
    Add: now finding all defined events for forms/reports/controls
    Fix: avoid false link to missing object with no name for an unbound subforms
    Fix: fixed issue with labled macro called from a command bar
    Fix: now handling sub-queries correctly that are obfuscated by Access when saved in design view
  • Export features
    Add: added ability to export all objects and their dependencies to Excel or into the Host DB
    Add: added custom menues to text export
    Add: added ability to export results of find, search and special searches (lower left listbox) to Excel
    Change: now opening an exported text-file in the editor to be consistent with behaviour for Excel export
  • GUI
    Change: structural nodes in treeview now colored blue to better distinguish from DB objects
    Change: combined "Top Items" and "Unused objects" into one view, removed "Bottom Items" view (more or less useless)
    Add: added "All CommandBars" and "All CB Controls" to predefined special searches
    Add: re-arranged checkboxes on startup screen to match Windows standard
    Fix: "Select All" on Startup Screen now includes the checkbox for command bars
    Fix: Set "Popup" property for pop-ups to "Yes" what improves the appearance in A2007+
  • Fixed Run-time errors
    Fix: fixed the Heisenbug that caused sporadic RTEs when loading the tree view
    Fix: no RTE now in case of illegal SQL that would confuse the indenter
    Fix: no RTE now, for an empty class module
    Fix: no RTE now, if a command bar contains a combobox control
    Fix: no RTE now, if a custom menu calls a function without trailing parenthesis
    Fix: no RTE now, if using an option group on a report

0.9.8 (18-Apr-2010)

  • Covered dependencies
    Add: no covering custom menus and their links to DB objects
    Add: completed support for ActiveX controls; now linking event procedures for custom controls (like treeviews) correctly to the control events
    Add: now covering form/report section events controls
    Add: now covering switchboards (with object names stored in a table called "Switchboard Items")
    Fix: now correctly reporting nested functions like function1(function2())
    Fix: now correctly linking event procedures if the control name contains "illegal" characters like spaces (procedure name has underbars then)
  • Run-time errors
    Fix: now no RTE anymore for constructed DELETE queries in VBA like "DELETE " & table & ".* FROM ..."
    Fix: no RTE now, if selecting "---------" in the tree view drop-down
    Fix: no RTE now for extra long SQL statement in code (255+ chars)
    Fix: an empty macro caused a RTE
  • Treeview
    Change: Now showing ALL controls on forms and reports as a DB object linked in the tree view
    Fix: Adjusted/corrected sorting of tree view child nodes
    Add: Automatical horizontal autoscroll of the treeview to show clicked node and icon
    Add: Added screen message if "Expand below" has been cancelled because the maximum expansions has been exceeded
    Fix: suppressed screen flickering and unintentional scrolling if double clicking in the tree view
    Change: changed default for double click in object window to "Set as Root" (was "Show Details") including tree view update; adapted history (for "Forward" and "Back" buttons) to correctly update treeview or not
  • Misc
    Fix: added code to remove cmbObjectList and cmbTVContextMenu commandbars from analysed DBs inadvertently create by using ADC 0.9.5/6/7
    Fix: Now handling long macro actions correctly (reverse truncation caused by SaveAsText function)
    Add: Add content for controls
    Fix: now also marking SQL concatenated with "+" instead of "&" as incomplete
    Fix: DBObjects Window: large contents did not scroll correctly to the top but to 2nd row

0.9.7 (12-Dec-2009)

  • Fix: "Store in DB" feature introduced with 0.9.6 did not work in some settings due to a race condition. Changed the technique to store data in the host DB to fix this.
  • Add: Include DB name now in error report

0.9.6 (29-Nov-2009)

  • Add: Allows now to store the analysis result in the database itself (in three hidden tables). This avoids the (sometimes lengthly) analysis run at every start of the add-in. The added tables can also be removed again (e.g. prior to a release)
  • Add: Now reporting functions called by custom menus that are defined in VBA
  • Fix: Avoid RTE if user inadvertently stops the Addin code when working in the VBA IDE
  • Fix: Avoid RTE for super large macros

0.9.5 (13-Nov-2009)

  • Tree Views
    Add: Unified Tree Views in Main and DB Object window, enhancing the functionality in the DB Object window (e.g. allow to click thru tree, seed TV with lists etc.)
    Add: Added Treeview options "All Types" (like in DB Object Window) and "Both" (Top-Down and Bottom-Up)
    Add/Change: allow to jump to detailed view with double click on tree view node
    Fix: avoid editing of node text
  • DB Object Window
    Add: Allow to reset resizer bar position with double click
    Add: Unlimited history list on DB Object form, allowing to navigate back and forth
    Change: changed buttons on Details form to icons (from text)
  • Debugging / Error Reporting
    Add: Improved error handling in AnalyzeDB() and subfunctions, added custom error messages
    Add: Added version build number, UI History and line number to Error Report
    Fix: Fixed problem during error reporting (unwanted shut-down of tool in some cases)
  • Run Time Errors
    Fix: Avoid RTE if user cancels the "Analysis in progress window"
    Fix: Analysis crashed in Access 2007 -> fixed SaveToTable() methods to be version safe
    Fix: Avoid RTE for incomplete SQL with unmatched open parethesis
  • Options
    Change: changed default for "Optimistic Parsing" to YES, should be safer to get too many than to little results especially as long as VBA parsing is not complete
    Change: VBA parsing now defaults to "YES", should be safe with "Optimistic Parsing" defaulting to yes
    Change: changed names for options so that default is always NO : Optimistic Parsing -> Strict Parsing and Indent SQL -> Show SQL as is
  • Dependencies and Object handling
    Fix: removed Standard Modules from list of top nodes
    Fix: better handling of 'name-less' missing objects
    Fix: Wrong link has been reported for field lookups in some cases
  • Misc
    Fix: Now opening parent object if clicking "open in design" on SQL statements, fixes for other types
    Fix: opening a subform in design mode (for analysis) closed the parent in normal view mode

0.9.3 (06-Jul-2009)

  • added reporting of custom VBA functions in queries and other SQL based objects
  • added "Debug Mode" option to easily disable error handling for bug hunting purposes
  • changed tree view from full-load-on-start-up to build-up-on-the-fly (faster, more flexible); removed now unneccessary options (thanks, Matt and TJ for reporting this)
  • rearranged controls on Main Window making more space for the list control
  • improved/fixed code parsing: avoid RTE if form modules contains Property Let/Get/Set; fixed detection of class usage in code (kudos to Gonzo for bug hunting support)
  • fixed problem when analysing subforms on forms/reports on non-English systems

0.9.2 (24-Feb-2009)

  • Addded option for 'optimistic parsing' to make 'Unused objects' list more useful. Searches code and events for object names. Works well if your database objects have unique names (like tblXXX, qryYYY); reports false links if not.
  • Improved Macro parsing (now showing text instead of code numbers in action details)
  • Some bug fixing

0.9.1 (02-Feb-2009)

  • Renamed tool (to avoid conflict with commercial product) and moved to dedicated domain.
  • Added coverage for Form Controls as conditions in Queries
  • Added option to de-select all object types in startup dialog

0.9.0 (30-Jan-2009)

  • SQL indenting rewritten: now able to indent subqueries and DDL queries; produces more readable SQL for JOINs and WHERE/HAVING clauses; improved formatting of formulas like Mid(); fixed bugs
  • Form/Report parsing rewritten: now covering form and control events, fixed parsing of sub forms/reports
  • Macro parsing rewritten: now producing human readable macro definitions; aligned parsing of TransferXXX actions; now covering many more macro actions
  • Code parsing rewritten: switched from brute force to real code parsing (avoiding false positives and allowing to detect missing objects in code); now handling procedures as individual objects ( allows to find code-to-code and event-to-code links)
  • GUI: added feedback button to main form; allows now to seed tree view with various predefined object lists (including missing/unused objects); allows now to change settings during a refresh of the dependency data
  • Object structure: introduced SQL object for SQL statements in RecordSources, RowSources and VBA code; introduced Parent/Child dependency type (e.g. a control is a child of a form, a procedure is a child of a code module etc.)
  • Error handling: Added error handling code and an error form to simplify bug reporting
  • Other fixes: Now excluding temporary table (starting with ~tmp) from analysis and many, many more ...

0.8.6 (01-Oct-2008)

  • Retrieving the field list for tables is now optional (may take an awful long time with a remote backend DB)
  • SQL formatting: PARAMETER queries now formatted correctly
  • DB Object Form: Added a back button to jump to previous object
  • Parsing: Better support for handwritten action queries without table qualifier (e.g. UPDATE Table SET Field="Content")
  • Analysis Form: Now showing the object name currently analysing (may help to identify problem if analysis got stuck)
  • Some minor improvements and bug fixing

0.8.5 (03-Jul-2008)

  • Added support for Reports
  • Added support for dependencies via HyperlinkSubAddress property of Command Button, Image and Label controls
  • Improved "special searches" (restructured, new searches for all objects)
  • Change: better icon for missing objects
  • Fix: now indenting CrossTab queries correctly
  • Fix: subform reading now works correctly
  • Fix: fixed error in parsing of update queries if target is a query
  • Fix: reporting links via RowSources of Listboxes and Comboboxes only if there is a Rowsource defined
  • Fix: replaced with ExpandShare( in "read code modules" to avoid issues with network shares
  • Fixed several other minor bugs

0.8.0 (20-Mar-2008)

  • Query analysis: now parses dependencies of DDL queries
  • Macro parsing: fixed parsing of TransferText, TransferSpreadsheet, added coverage for OpenForm
  • Table reading: now determines the table type (plain, linked, ODBC) and lists connection strings for ODBC links; now reporting unreachable linked tables; now reads and analyzes field lookups in table definitions; improved field list for tables
  • TreeView: now special icons for PassThrough queries, DDL queries, linked tables and ODBC tables
  • GUI: now remembers form sizes and positions
  • Detail Form: implemented search in content (also from context menu of dependencies list)
  • lots of polishing (GUI and code)
  • killed a bunch of bugs

0.7.1 (02-Feb-2008)

  • removed an unnecessary reference
  • replaced the rich text box with the non-ActiveX control from Stephen Lebans to get rid of a problematic reference to the ActiveX RichTextBox control
  • fixed error with very large code modules

0.7.0 (14-Jan-2008)
First published version