Download Page
License
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.
Download
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).
Changelog
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 db.name with ExpandShare(db.name) 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