Copyright: Copyright© 1997 FMS, Inc.


Help Contents
Contents

Introduction

Documentation Basics

Generating Full Documentation

Viewing Documentation

Printing Documentation

Quick Documentation

Additional Topics


Introduction

New Features in Version 8.0

Our Internet Home Page

Preparing for Documentation

Starting Total Access Analyzer

Startup Errors

Technical Support


Documentation Basics

Why Document?

The Documentation Process

Documentation Limitations


Generating Full Documentation

The Main Menu Form

Documentation Wizard Quick Start

Page 1: Selecting Objects to Document

Page 2: Specifying General Options

Page 3: Output Database and Scheduling

While Documentation Is Being Generated

Troubleshooting Documentation Failures


Viewing Documentation

View or Print?

Quick Start

Using the Documentation Explorer

Using Property Filters

Errors, Suggestions, and Performance Tips

Documentation by Object Type

The Database Item

General Folder

Tables Folder

Queries Folder

Relationships Folder

Forms Folder

Reports Folder

Macros Folder

Overview of Module Documentation

Modules Folder

Module Cross-Reference

Command Bars Folder

Diagrams Folder

Selecting Another Output Database to View


Printing Documentation

Quick Start

Selecting Reports

Print Filter

Changing Report Options

Reports with No Data

Report Categories

Errors Category

Suggestions Category

Performance Category

Database Category

Tables Category

Queries Category

Forms Category and Reports Category

Macros Category

Modules Category

CmdBars Category

Relations Category

Security Category

Object XRef Category

Field XRef Category

Module XRef Category

Diagram Category

System Category


Quick Documentation

Introduction

The Quick Doc Wizard


Additional Topics

Un-Installing Total Access Analyzer

Total Access Analyzer Files


New Features in Version 8.0

Total Access Analyzer 8.0 is a major release with many significant enhancements. These are the highlights:

•	Supports all language versions of Microsoft Access 97

•	Documents new Access 97 objects such as Command Bars, hyperlinks, ActiveX controls, and new object properties.

•	Documents user defined properties on any object.

•	Module analysis of Visual Basic for Application (VBA) syntax including new commands and class modules.

•	Module documentation of constants and their values, and module references to objects via constants.

•	Procedure documentation showing your comments.

•	New hierarchical TreeView browser to easily view all the results from one form. Also includes a Property filter to view a single property's values across multiple objects.

•	QuickDoc generates simple documentation for any object. Useful when detailed documentation and analysis is not necessary.

•	Relationship window report showing your exact relationship window layout or only the link fields.

•	Over 220 reports available (almost twice as many as before) with increased support for object filtering, and thumbnail previews of every report.

•	Detects over 100 ways to fix and improve your database organized into three groups: errors, suggestions, and performance tips. New items include:

•	Identical field names with different type or size across tables

•	Reports without a NoData event

•	Command buttons with no OnClick code or hyperlink

•	Unused user defined types

•	Variable name conflicts with global or module level variables

•	Lists of complex forms and reports

•	Many other suggestions and performance tips

•	A list of 160+ general tips to improve your database.


Our Internet Home Page

To provide you with the most current information on our products, FMS can be reached on the World Wide Web at http://www.fmsinc.com. Our site is constantly being updated with news and features for the Access community. Please drop by and take a look.

Product Announcements and Press Releases

Read the latest information on new products, new versions, and future products. Press releases are available the same day they are sent to the press. Sign up in our Feedback section to have press releases automatically sent to you via E-mail.

Product Descriptions

Detailed descriptions on all our products are available. Each product has its own page with information on features and capabilities.

Product Registration

Register your copy of Total Access Analyzer on-line.

Utilities and Free Software

Download free demos and utilities, including the FMS PowerPack, Text FX, and DAO Explorer, to use Microsoft Access more effectively.

Technical Papers

FMS personnel often speak at conferences, and write magazine articles, papers, and books. Copies and portions of this information are available to you on-line. Learn about our latest ideas and tricks for using Access more effectively.

Links to Other Microsoft Access Sites

Jump to other locations, including user group home pages, that offer Access news, files, related services, and other useful information.


Preparing for Documentation

Before documenting your database with Total Access Analyzer, you need to make sure your database is ready. By understanding the issues listed here, you can document your databases better and quicker.

Have Permissions for All Objects

For Total Access Analyzer to document your objects, it needs to open them in design mode. Otherwise, it triggers "insufficient permission" errors. You should be logged into Access as the owner of the database with permission to all objects. If not, you must have at least Read Definitions permission for each object to document.

Make Sure the Database is Not Being Used by Others

You should be the only one in the database when you document it. This ensures full access to all objects Total Access Analyzer examines and consistent results. If this is not possible because your database is shared on the network, you should consider making a local copy and documenting that. In a shared situation, Total Access Analyzer can still run but may generate incomplete results if users are modifying objects or have objects open that prevent it from going into design mode.

The best way to avoid this is to open your database in Exclusive mode (check box in the File|Open Database dialog).

Make Sure Your Database is not Corrupt

Total Access Analyzer will have trouble documenting corrupt or damaged database objects. You should regularly run the Microsoft Access Repair and Compact operations on your database to prevent corrupt or damaged objects. You should do this before running Total Access Analyzer.

Verify Linked Tables

If your database contains linked tables, check your table attachments before generating documentation. Broken links often occur when the linked database or object is renamed or moved to another directory.

Total Access Analyzer does flag tables that are not linked properly. However, it cannot document the table's fields nor any object (such as queries, forms or reports) that use the table. Rather than running Total Access Analyzer, having it list tables that are not linked, re-linking the tables, and running Total Access Analyzer again, just check them before you start.

Use the Linked Table Manager under the Microsoft Access Tools|Add-ins menu, to verify your tables are properly linked.

Make Sure your Code Compiles

If you want Total Access Analyzer to perform module cross-referencing (documents your procedures, variables, etc.), your module code must contain valid syntax. Open one of your modules and select Debug|Compile and Save All Modules from the menu. This action causes Microsoft Access to perform a syntax check on all of your module code including code behind forms and reports. If syntax errors are highlighted, fix them and continue issuing the Compile and Save All Modules command until all the errors are gone.

Have Sufficient Disk Space for Output

Make sure the drive with your Total Access Analyzer output directory has enough free space. If you are generating blueprints, cross reference documentation, or all properties, a large amount of disk space is required. The amount of space is based on the documentation options you specify and the complexity of the objects selected for documentation. It is not based on the size of your database which may be more related to the amount of data stored. Unfortunately, Total Access Analyzer cannot determine the amount of space required before documenting your database. However, it is not surprising to have the documentation output database many times larger than the documented database.

Turn Off Your Screen Saver

Some screen savers interfere with Total Access Analyzer. If you have a screen saver active, you may want to disable it while generating documentation. This keeps the screen saver from appearing when there is no screen activity.

Disable Visual SourceSafe

Access 97 with the Office Developers Edition allows Visual SourceSafe (VSS) to control modifications to your objects. If your database is under VSS control, you may notice that it takes a long time to document objects. In particular, the generation of Form and Report Blueprints may take a long time. To improve performance, create a copy of your database and remove that copy from VSS control. This can accomplished by compacting your database under a new name and answering "Yes" when prompted to remove the new database from VSS. Then, run Total Access Analyzer on that copy.

Make A Backup

We have tried to anticipate every possible situation that could cause unwanted results in your database during documentation. However, unexpected problems with Microsoft Access, Windows, or your hardware can cause problems that damage your database. You should always have a backup of your database before you run any utility program, including Total Access Analyzer. This ensures that you can recover from a system failure.


Starting Total Access Analyzer

Total Access Analyzer runs from within Microsoft Access. The program is written with Visual Basic for Applications (VBA)  and uses Microsoft Access forms, reports, tables, and queries. If you are familiar with Microsoft Access, you should be very comfortable using Total Access Analyzer.

1.	Start Microsoft Access 97

2.	Open the database you want to document using File|Open Database with the Exclusive option checked.
If you have an AutoExec macro or Startup form in your database, other objects may be automatically opened. To ensure that these objects do not interfere with Total Access Analyzer, close any open objects except the database window.

3.	From the Tools|Add-Ins menu, select Total Access Analyzer:

Starting Total Access Analyzer

Total Access Analyzer starts by minimizing your database. If your screen resolution is 640x480 and you have more than one row of menubars/toolbars, there may not be enough room for Total Access Analyzer to display all its forms completely. Consider disabling some of your toolbars while using Total Access Analyzer, or switch to a higher resolution such as 800x600.

When you run Total Access Analyzer the first time, it initializes itself and a few progress meters appear. This takes a moment and does not appear the next time you run it. When completed, the Main Menu form appears and you are ready to go.

Documenting Databases on a Network

You can document a database residing on a network drive. However, because of sharing issues and performance problems, you may want to consider copying the database from a network drive to a local drive before running Total Access Analyzer on that database. There are several issues that make this a wise choice. First, when you document a database, you want to be sure that no other users have objects open, or are changing objects. Total Access Analyzer cannot document objects that other users have open or locked. Second, performance across the network is substantially slower. Total Access Analyzer is a very disk-intensive program—it needs to open your objects in design view and read all properties and definitions. Because of this, going across a network connection causes poor performance in Total Access Analyzer and everyone else on the network.

Context Sensitive Help

Throughout Total Access Analyzer, you can press the [Help] button or [F1] to bring up context-sensitive help. The help system is fully indexed with many jumps between topics. Most of this manual is in the on-line help system, which may also include more up-to-date information.


Startup Errors

Most errors that occur with Total Access Analyzer happen when you first start it. This section explains the most common problems and gives suggestions on how to fix them.

Microsoft Access cannot find Wizard, or there is a syntax error in the Declarations section of a Visual Basic module.

This error is caused by incorrect information in your system registry. Microsoft Access uses the registry to store information about the add-ins available. When you install Total Access Analyzer, it places several entries in the Windows Registry to identify the location and name of the Total Access Analyzer library database, and the name of the main Total Access Analyzer function. If these entries are incorrect, this error message appears. Another cause may be corruption in the Total Access Analyzer program. Re-install Total Access Analyzer to eliminate this problem.

The current database is not updatable.

You have opened the current database in read-only mode, or another condition has forced the database to be read-only. Total Access Analyzer cannot document a database opened in read-only mode. Close the database, re-open it in normal mode, and restart Total Access Analyzer.

Please close any forms or reports that are open and re-start Total Access Analyzer.

You must close all modules, forms, and reports in your database before running Total Access Analyzer. Open forms or reports, or objects in design view interfere with the operation of Total Access Analyzer. Close all windows except the database window and restart Total Access Analyzer. Note that once documentation is generated, you can have your objects open as you use the View and Print features of Total Access Analyzer.

This copy of Total Access Analyzer is in use.

As mentioned earlier, Total Access Analyzer can be installed on a network drive but can only be used by one user at a time. If more that one user attempts to start Total Access Analyzer at the same time, the second user sees a dialog box saying the copy of Total Access Analyzer is already in use.

This message also appears if you attempt to run Total Access Analyzer in two instances of Access on the same workstation. Press [OK] to return to Microsoft Access and try again later.

Total Access Analyzer ensures that only one user is running it at a time by exclusively locking the database. If Microsoft Access exits abnormally while Total Access Analyzer is running, an LDB lock file may be left in place that erroneously reports Total Access Analyzer being in use, even though no one is using the program. If this happens, you need to manually delete the lock file.

To do this, ensure that no other users are running Total Access Analyzer. This step is very important. If you manually delete the lock file while a user is running Total Access Analyzer, you may cause that user to crash.

Exit Microsoft Access. From the DOS prompt or from Windows Explorer, locate the directory where you installed Total Access Analyzer, delete the lock file (TA8DOC_C.LDB), restart Microsoft Access and run Total Access Analyzer again.

Total Access Analyzer cannot be called from this database.

This error occurs if you try to load Total Access Analyzer while the database (TA8DOC_C.MDE) is open in another instance of Microsoft Access. For example, you disabled Total Access Analyzer as a library database and opened it using the File|Open Database menu item. Total Access Analyzer cannot document itself. Close the Total Access Analyzer database, open another database from Microsoft Access and restart Total Access Analyzer from the Tools|Add-Ins menu.


Technical Support

If you encounter problems that you cannot resolve, please contact our technical support department. We are very interested in making sure you are satisfied with our product. Before contacting us, you should visit our web site. Product patches and technical information may be available there.

Please note that FMS only provides technical support to you as the licensed developer. Technical support is not provided to the people using the application you deploy.

The best way to contact us is via fax or E-Mail. With a written explanation, we have more time to understand the entire problem and consult all of our resources:

•	E-Mail:	techsup@fmsinc.com

•	Fax:	703-448-3861

•	Web: 	http://www.fmsinc.com


Why Document?

Documentation is an essential part of application development and maintenance. Microsoft Access provides a great deal of control over the appearance and behavior of objects and controls. As your application grows, objects, properties, code, and relationships between objects become more numerous and complex. Without a consistent, automated documentation and analysis tool, development and maintenance becomes a major chore. Total Access Analyzer is designed to reduce and eliminate many of the tedious and difficult parts of documentation. You can use Total Access Analyzer in a variety of situations:

During Development

As you design new objects and relate them to other objects, documentation and analysis can be invaluable when selecting fields, creating expressions, and calling forms, reports, and queries. As you develop your application, you can run Total Access Analyzer to generate reports of table structures, form properties, etc. for quick reference. Such information is vital for maintaining consistency across objects. Total Access Analyzer also detects errors to help you write better code.

Maintaining an Inherited System

One of the most difficult aspects of taking over an existing database is determining what is in the database. Because Total Access Analyzer provides comprehensive (multi-object) analysis of your database, you can quickly get up to speed on an inherited project. The application, data, and object diagrams are particularly useful. See how the program flows, where data goes, and what objects are used by a form, report, or query. The list of errors and suggestions also helps you take control of a database and fix problems quickly.

Providing System Documentation

As a developer, you are probably responsible for creating detailed system documentation. Total Access Analyzer eliminates much of the work, making it easy to supply professional, comprehensive, and accurate documentation in both printed and electronic format.

Increasing Application Quality

Before you start using or distributing your Access application, you need to test it. Done manually, this can be a time-consuming, incomplete, and error-prone task. Total Access Analyzer automatically finds many types of errors, suggestions, and performance problems in your application, minimizing the things you need to test. Examples include:

•	Tables, fields, queries, forms, reports, macros, and procedures referenced but not found

•	Corrupt objects

•	Linked tables with incorrect connections

•	Queries with errors in their SQL string

•	Command buttons on forms without a hyperlink jump or code in their OnClick event

•	Multiple controls on a form with identical hotkeys

•	Reports tied to explicit printers rather than the default Windows printer

•	Procedures called with the wrong number of parameters

•	Unused tables, queries, macros, sub-macros, procedures, variables, and user defined types

•	Global procedures that should be private

•	Debug and Stop statements in your code

•	Variables and functions not typecast

•	Variable names that conflict with global and module level variables

•	Performance problems in your tables, queries, forms, reports, macros and modules

•	Performance problems with your database, installation of Windows, and your computer

For more information on the Errors, Suggestions, and Performance items detected by Total Access Analyzer, see  Errors, Suggestions, and Performance Tips.


The Documentation Process

Total Access Analyzer works by examining the objects in your database. Some objects are opened in design view; some are examined using Data Access Object (DAO) calls. As it documents your objects, Total Access Analyzer writes the results to tables in an output database you specify. Although the documentation process may create temporary objects in your database, no changes or permanent additions are made.

To generate documentation, you need to follow a series of steps. Before starting, decide if you need quick documentation or full documentation.

QuickDoc Documentation

QuickDoc documentation is a subset of Full Documentation to quickly provide basic information about individual objects. It does not perform analysis across multiple objects. You can use QuickDoc to document:

(For full information on QuickDoc, see Quick Documentation)

•	Database Information and Object Inventory

•	Table Structures and Properties

•	Query Properties

•	Form Properties

•	Report Properties

•	Macro Line Listings

•	Module Code Printouts

•	Relationship Window

•	CommandBar Properties and Controls

There are six steps to generating QuickDoc documentation:

1.	Open the database you want to document

2.	Start Total Access Analyzer

3.	Choose [QuickDoc] from the main menu

4.	Select the type and object(s) to document

5.	Generate the documentation

6.	Preview and print reports

Full Documentation

Full Documentation includes QuickDoc features, but goes much further by providing extensive analysis. Obviously, full documentation takes more time. The following list highlights some of the power of full documentation:

(For full information on Full Documentation, see Generating Full Documentation.)

•	Cross reference information showing where and how your objects are referenced throughout your database

•	Module analysis including listings and cross-referencing of your procedures, variables, constants, labels, etc.

•	Hierarchical diagrams of how your application works

•	Errors and suggestions to fix and improve your database

•	Performance tips

•	Security (permission) documentation

These are the basic steps to generate Full documentation:

1.	Open the database you want to document

2.	Start Total Access Analyzer

3.	Choose [Document] and select the objects to document

4.	Set documentation options

5.	Generate the documentation

6.	View the documentation

7.	Preview and print reports

Total Access Analyzer makes these steps easy with the Documentation Wizard. A principal design goal of the program is to allow you to generate documentation as easily and quickly as possible. The following chapters guide you through each step in the process.

Difference between Documentation and Analysis

Total Access Analyzer generates two distinct types of information: Documentation and Analysis. Documentation consists of information about an individual object's design. Table structures, form and report properties, query SQL strings, permission settings, and user and group information are examples of this type of information. The documentation provided by Total Access Analyzer is information about how each object is structured. It is very comprehensive and covers every object you select for documentation.

Analysis shows more complicated information such as how objects are related to each other, module code details, and errors in your application. Much of the analysis is based on the Documentation results, but Analysis also includes the module cross-reference information. This involves searching through lots of data to reveal where objects are used, and to find other highlights or discrepancies. Examples include the diagrams, cross reference information, module details, and the list of errors, suggestions, and performance tips.


Documentation Limitations

Although Total Access Analyzer documents and analyzes most objects and linkages in your database, there are some limitations:

More:

Errors with Objects

Unresolved References


Errors with Objects

•	If your VBA Code cannot be compiled, Total Access Analyzer may document your modules incorrectly. Depending on the syntax error, it may even crash or go into an infinite loop. For module cross-reference to work, your code must be valid. To correct this problem, open any module, and select Compile and Save All Modules from the Debug menu. This action causes Microsoft Access to perform a syntax check on all of your module code. As syntax errors are highlighted, fix them and continue issuing the Compile and Save All Modules command until all errors are gone.

•	If an object cannot be opened for documentation, the references it makes to other objects are not documented.

•	If a query's SQL property has a syntax error, the query and its references are not documented.


Unresolved References

Total Access Analyzer does a very good job at detecting and documenting explicit object references, but there are some cases where it cannot determine which object is referenced, and therefore cannot verify that the reference exists.

References that are Resolved

These references are always documented properly:

•	Tables used by queries.

•	Tables, queries, and fields used by forms and reports.

•	Macros called from events and other macros.

•	Objects opened by macros.

•	Command bars linked to forms and reports.

Explicit object references in code are also documented, including references using constants (new in 8.0):

Const strTableName = "My Table Name"
Set rs = db.OpenRecordSet(strTableName)
DoCmd RunMacro "My Macro Name"
DoCmd RunQuery "My Query Name"
DoCmd OpenForm "My Form Name"

When Total Access Analyzer detects a field or object reference, it verifies whether the object exists. If not, the reference is stored as an error. This is an extremely powerful feature since it tests all your links.

References that are Not Resolved

Unfortunately, there are situations where Total Access Analyzer is unable to determine the referenced objects.

In module code, references to objects with an expression, variable, or function are documented but flagged as unresolved. Because the value of expressions, variables, and function return values is only known at runtime, Total Access Analyzer cannot determine the name of the referenced object. This is particularly important if you have a "table-driven" system with object names stored in tables and not your code.

When an object is called using a variable, Total Access Analyzer records the reference in the Cross Reference documentation,  and sets the [Variable] field to "Yes" and the [Resolved] field to "No". This allows you to find the references that you need to manually resolve. The following are some examples that cannot be resolved:

DoCmd RunMacro "Sales " & x
DoCmd OpenTable "Customers For " & "1997"
DoCmd RunQuery strQueryName
DoCmd OpenForm MyTestFunction()

The following example also shows a reference (to MyTable) that cannot be detected:

strSQL = "SELECT DISTINCTROW * FROM MyTable"
set rs = db.OpenRecordSet(strSQL)

Library Databases

References to variables, procedures, or objects in Library Databases or databases linked to your database with the References menu are also not resolved. Only references to objects in the database being documented can be resolved.

Hyperlinks in Tables

Total Access Analyzer cannot document references to procedures, variables, or other types of objects if the reference is made within an EVAL() function.

EVAL Statements

Total Access Analyzer cannot document references to procedures, variables, or other types of objects if the reference is made within an EVAL() function.

Class Module References

Most class module references are properly documented. If you explicitly invoke a class module's method or refer to its property, the reference is documented:

Dim varName As New ClassName
Form_MyForm.MyMethod
Forms("MyForm").MyMethod

These references are not documented:

Dim varName As Object
Forms(MyFormVariable).MyMethod

Additionally, class references from elements of user defined types are not documented.

Problems with Unresolved References

Unresolved references cause two major problems:

•	The referenced object cannot be verified (it may or may not exist).

•	Objects may be incorrectly flagged as unused. Unused objects are objects with no references from other objects. If an object is referenced in a way that Total Access Analyzer cannot detect, it may be incorrectly flagged as unused. Check the Object XRef reports for variable references to understand the references in the database that could not be resolved (see Object XRef Category for more information).


The Main Menu Form

With the database you want to document open, start Total Access Analyzer from the Tools|Add-ins menu. After a moment, the Main Menu form appears:

Main Menu Form

The buttons on this form guide you through the documentation process in a logical manner:

Document

This is the most important button and launches the Wizard that generates full documentation of your database. From this button you select the objects to document, set documentation options, specify the output database name, and start or schedule when documentation occurs. When documentation finishes, you return to the Main Menu form.  For more information see Generating Full Documentation .

View

After the documentation and analysis is generated under [Document], this button lets you view the results by loading the Documentation Explorer. . You can also retrieve and view documentation previously generated for other databases.  For more information see Viewing Documentation.

Print

After the documentation and analysis is generated under [Document], the print button lets you use the 220+ Total Access Analyzer reports. You can preview any report and send multiple reports to your printer. You can also filter many of the reports to only include a subset of the documented objects.  For more information see Printing Documentation.

Quick Doc

The [Quick Doc] button launches a Wizard that quickly generates basic documentation of individual objects in the current database. This is performed without the full documentation and analysis features under the [Document] button. See The Documentation Process  and Quick Documentation for more information.

Exit

This button closes Total Access Analyzer and returns you to Microsoft Access. Your database remains open and your workspace is reset to its original state. All settings and documentation in Total Access Analyzer are automatically saved.

Help

The on-line help system is available by pressing the [Help] button or [F1].

About

The [About] button displays information on your version of Total Access Analyzer. It also allows you to generate a log file that includes information about your installation.


Documentation Wizard Quick Start

After pressing the [Document] button, a Wizard guides you through the process of specifying the documentation you want. A summary of each screen is listed with suggestions for how to quickly use it. More detailed information is provided for each option in the following sections.

More:

Page 1: Select the Objects to Document

Page 2: Specify General Options

Page 3: Start or Schedule Documentation

Generating Documentation


Page 1: Select the Objects to Document

Documentation Wizard (Page 1)

All your database objects are displayed. The icon menu on the left lets you display the items and options by object type. For every object selected, its basic documentation is generated. The options in the right column let you specify optional documentation. For more detailed information, see Page 1: Selecting Objects to Document .

Quick Tips:

The more items you select, the more time it takes to document. If time is not an issue or your database isn't too large, you'll probably want to make these choices:

•	Choose all objects:

1.	Select [All] from the icon menu to display all objects.

2.	Press the [Select All] button to choose all objects.

•	Eliminate built-in command bars unless you've customized them:

1.	Select [Cmd Bars] from the icon menu

2.	Click on the option button "Built-In" and press the [Clear All] button to de-select the built-in command bars.

•	Choose all the options except for these:

1.	Choose "Control Format Properties" only if you need information on the format properties of every control (height, width, color, font, etc.).

2.	There is a bug in Access that causes documentation of field properties in linked tables to be extremely slow. If you have a large number of linked tables, each with many fields, you may want to consider turning off "Table Field Properties".

•	Press [Next] to go to page 2 of the Wizard.


Page 2: Specify General Options

Documentation Wizard (Page 2)

Some documentation and analysis is not directly tied to an object and can be optionally generated. This page lets you select those options and specify settings under performance analysis. For more detailed information, see Page 2: Specifying General Options.

Quick Tips:

•	Select all options.

•	Ignore the [Performance Analysis Settings] button.

•	Press [Next] to go to that last page of the Wizard.


Page 3: Start or Schedule Documentation

Documentation Wizard (Page 3)

The final page of the Wizard allows you to specify the output database name, and whether to start documenting the database immediately or schedule it for a later time (e.g. at night when the database is not used). By default, the output database is put in the OUTPUT sub-directory where Total Access Analyzer is installed and given the same name as your database with a ".TDB"  extension rather than ".MDB".

Quick Tips:

•	Ignore everything and start documenting your database by pressing the [Finish] button.


Generating Documentation

After screen 3, you sit back and wait for the documentation to be generated. This can take a few minutes or hours depending on your database complexity, the selections you made, the speed of your machine, amount of memory, and your hard disk speed. When finished, a summary screen appears. Press [Next] to return to the Main Menu form with the results available under the [View] and [Print] buttons.


Page 1: Selecting Objects to Document

When you select the [Document] option from the Main Menu form, the first of three pages of the Documentation Wizard appears. Use the [Back] and [Next] buttons to move through the pages.

Documentation Wizard (Page 1)

This form is divided into three vertical sections. The icon menu on the left controls what is displayed in the list of objects and options sections. By default, [All] is selected and all objects and options are displayed. You can reduce your list by clicking on the other object types (Tables, Queries, Forms, etc.).

This screen allows you to specify which objects to document and a few documentation options.

NOTE: In general, you should select all objects, especially if you are interested in generating complete cross-reference information and detection of unused objects.

For your convenience, if you documented this database before, the objects you previously selected are selected again. However, if you added new objects or renamed existing objects, they are listed but not selected. (Deleted objects do not appear in the list.)

To select or de-select a single object

Click on the check box to the left of the object you want to select. A check mark appears in the check box, and the object has been selected for documentation. Click the check box again to de-select the object.

To select or de-select all objects of a specific type

You can select all the displayed objects by pressing the [Select All] button.

To de-select all displayed objects, press the [Clear All] button.

If you want to select all objects in your database at one time, display all the objects via the [All] icon, then press [Select All]. To de-select all objects in the list, press [Clear All].

More:

Object Selection Strategies

Specifying Options

Table Options

Control Properties

Blueprints Options


Object Selection Strategies

Obviously the more options and objects you select, the longer it takes to process. If you only want to document your tables, only select tables for documentation. But if you want to see how your tables are referenced from queries, forms, and reports, you must select those queries, forms, and reports.

Selecting Objects for Object Cross-Reference

For complete and accurate object cross-reference (showing where every table, query, form, report, macro and command bar is used), all queries, forms, reports macros and command bars must be selected. If you need to know object references from modules (e.g. DoCmd OpenForm), the Generate Module XRef option must also be selected.

Note: Tables do not need to be selected. Tables do not reference other objects. Of course if you want basic documentation of tables (e.g. fields, indexes, properties, etc.) you need to select them.

Selecting Objects for Field Cross-Reference

Field cross-reference follows the same rules as the Object Cross-Reference, but make sure all tables are also selected.

Selecting Objects for Modules Cross-Reference

The Generate Module XRef option on the next page automatically documents every module. To generate complete cross-reference, every object using module code must be selected. This includes all forms and reports, and any queries, macros, and command bars that invoke your functions. If you only want analysis of your modules, you do not need to select any objects. Just select Module XRef on the next page.

Selecting Options and Objects for Diagrams

To generate Diagrams, select all queries, forms, reports, macros, and command bars.

Selecting Fewer Command Bars

When you select [Cmd Bars] from the icon menu, the list of Command Bars appear. If this is your first time, you will be surprised by the number of command bars in the list. The list includes all command bars available to your database including the 100+ built-in command bars from Access. The built-in command bars are listed because you can customize them. Since there are so many command bars, you should decide whether you want to document them all. To help you, an option group appears under the list:

Differentiating Among Command Bars

By selecting "Built-In", the list only displays the Access command bars. Selecting "Custom" shows command bars you've created. You should select every command bar listed under "Custom". Additionally, you should choose every built-in command bar that was modified.

If you are not sure, you should select all the command bars since command bars can call procedures and you need to document them if you want to have complete procedure cross-referencing.

However, if you know you have not modified any command bars, you can save documentation time by not selecting them.

See Page 1: Selecting Objects to Document


Specifying Options

The right side of the form lists documentation options:

Object Documentation Options

By default, all the basic properties of each selected object and the database are documented. The options presented here allow you to perform additional documentation of your selected tables, forms, and reports. Even if you choose none of the options, lots of documentation is still generated.

Your initial thought may be to turn on everything to get full and complete documentation. You may wonder why you would want to turn any options off. The simple answer is time and disk space. Each option takes time and adds time to the amount of output generated. If you have no need for a certain type of documentation, turn it off to document your database more quickly and use less disk space. If time and disk space are not problems, feel free to select all of the options.

(Every option you turn off reduces the amount of information Total Access Analyzer provides.)

To select an option click on the check box next to the option. An empty box shows the option is not selected.

The available options fall into three categories: Table Options, Form and Report Control Properties, and Blueprint Options. The specific components of each category are described below.

See Page 1: Selecting Objects to Document


Table Options

Table Field Properties

Total Access Analyzer uses the Data Access Objects (DAO) programmatic interface to read the properties of tables, queries, fields, relations, and indexes. Unfortunately, version 3.5 of DAO (which ships with Access 97) has severe performance problems retrieving properties for linked tables with a large number of fields. You can see this problem outside of Total Access Analyzer by running the Access Database Documenter on a linked table with a large number of fields.

To alleviate this problem, the "Table Field Properties" option is available. When you turn this option off, Total Access Analyzer does not document the properties of fields in tables other than their name, type, and size.  Turning this option off does not affect any of the analysis or cross-reference documentation—it merely makes the documentation process run faster. Of course, if you want reports listing all field properties, you must turn this option on. If you are generating documentation and notice that each table is taking an inordinately long amount of time to complete, consider turning this option off.

Table Record Counts

Turning this option on documents the record count of every selected table. If your tables contain a large number of records or is linked to large SQL tables, this can take a while. Turn off this option if you have lots of data and are not interested in record counts.

See Page 1: Selecting Objects to Document


Control Properties

Total Access Analyzer can document all the properties on your forms and reports controls. However, this can generate a huge amount of information you may not want and would never use. In particular, you can decide whether you want to document Format and Other properties of controls on forms and reports.

Control Format Properties

Format properties appear in the "Format" tab of a control's property sheet and determine its appearance. If you are not interested in things like size, font, color, and border information of every control, turn off this option. Otherwise, this information will be documented for every control on every form and report.

Control Other Properties

This option documents the properties listed in the Microsoft Access property sheet's "Other" tab. Examples of these properties are Status Bar Text, HelpContextID, Tag, Tab Stop, etc. Properties that can reference other objects (e.g. Shortcut menu bar) are always documented. "Other" properties are generally more important than "Format" properties, but you still may not want them for every control.

See Page 1: Selecting Objects to Document


Blueprints Options

One of Total Access Analyzer's most powerful documentation features is its generation of blueprints, which are visual representations of your forms and reports. They are helpful in documenting objects in a what-you-see-is-what-you-get format. Annotations (numbers) can be placed on each control, making it easy to identify each control and cross-reference the visual representation of the form with other documentation.

Blueprints take additional time to generate and store a considerable amount of space in the output database. If you do not need blueprints, do not enable them and you can decrease both the documentation time and the size of the output database.

There are several options for generating blueprints:

Generate Form Blueprints

This option generates a Blueprint for every selected form.

Generate Report Blueprints

This option generates a Blueprint for every selected report.

Annotate Blueprints

This option places an annotation number on each control on the Form or Report Blueprint. Controls are numbered starting with 1. Annotations make it easy to reference each control in the printed documentation. Additionally, annotations allow you to quickly see controls that invoke VBA code or macros. Controls with italicized annotations have code.

If you want the Blueprints to be a closer approximation of what the user actually sees when they open the form or report, do not select this option.

Unhide Controls on Blueprints

This option makes invisible controls appear on the generated Blueprints. If you use invisible controls, this option can help locate and identify these controls. If you want the Blueprints to be a closer approximation of what the user actually sees when they open the form or report, turn this option off. With this option off, only the controls that are visible when the form or report is opened are printed on the Blueprint.

When you have finished selecting objects to document and the documentation options, press the [Next>] button to go to the next page.

See Page 1: Selecting Objects to Document


Page 2: Specifying General Options

The second page of the Documentation Wizard allows you to specify general documentation options not related to specific objects.

Documentation Wizard (Page 2)

One of the most powerful features of Total Access Analyzer is its ability to analyze the information generated from the basic documentation of individual objects. This includes how your objects are related to each other, where each object is used, and any errors that exist in your database due to incorrect or incomplete references. By default, cross-reference analysis of tables, queries, forms, reports, and macros is always performed.

If you are only interested in the basic documentation of your database, you can turn all the Analysis options off. This results in faster documentation generation, but prevents Total Access Analyzer from generating some of its most valuable documentation including the detection of some errors that may exist in your database.

(Generally, only turn the Total Access Analyzer options off if you are not concerned with how your database objects relate to each other.)

In general, the two XRef options should be turned on. The Diagrams option should be turned on only if you specifically want application, data, and object diagrams.

More:

Generate Field XRef

Generate Module XRef

Generate Diagrams

General Documentation

Performance Analysis Settings


Generate Field XRef

Selecting the Generate Field XRef option generates field cross-reference analysis showing where fields are used and whether they exist. By showing every reference to a field in tables, queries, forms, reports, controls, and macros, Total Access Analyzer shows you where to make changes if a field's structure changes or a field is deleted or renamed. If this option is turned off, error detection of references to undefined fields is not possible.

See Page 2: Specifying General Options


Generate Module XRef

The Module Cross-Reference feature is one of the most powerful and useful features of Total Access Analyzer. A VBA code parser analyzes your module code and generates a great deal of information including procedure definitions, procedure calls, constants, variables, labels, procedure declarations, function calls, and much more. A variety of errors are detected along with many suggestions and performance tips. All general modules (regardless if you selected them) and the modules behind the selected forms and reports are analyzed.

The Generate Module XRef option is independent of basic Module Documentation, which just prints your module code. If you select this feature, your modules must contain valid VBA syntax and Access must be able to compile them. See  Preparing for Documentation for more information on preparing your modules and Module Cross-Reference for the analysis performed. If this option is turned off, module errors are not detected.

See Page 2: Specifying General Options


Generate Diagrams

This option generates the Application, Data, and Object Diagrams. These diagrams are extremely powerful tools for understanding how your objects work together. While cross-reference information shows only one level (where each object is used), the diagrams show the entire multi-level hierarchy. For more information on diagrams, see Diagrams Folder.

Application Diagram

The Application diagram displays your application and procedure flow in a hierarchical format from its top level object (Autoexec macro or startup form) through every referenced form, report, event, and procedure call. This multi-level tree provides an excellent illustration of the way your program works. If you are interested in the Application Diagram, you should also select the Generate Module XRef option. Otherwise, procedure calls will not be included in the diagram.

Data Diagram

The Data Diagram shows how data flows from tables through other objects such as queries, forms, reports, and code. It shows the entire family of objects using each table.

Object Diagram

The Object Data diagram shows all the objects (tables, queries, and macros) referenced by every form, report, and query. It shows the entire family of objects used by each object.

See Page 2: Specifying General Options


General Documentation

The second row of options on the page generate additional documentation:

Document Relationships

This option documents the table and query relationships as defined in the Microsoft Access Edit|Relationships window. Each relationship is documented along with the relationship window showing all the related tables and queries.

Document Security

This option documents the security (permission) settings for each selected object by each group and user defined in the current workgroup.

Document Containers and Documents

JET stores information about objects in Containers and Documents. Containers are object types (tables, queries, forms, reports, relationships, etc.). Documents are individual objects within each container (a table, query, form, etc.). Properties include values such as date created, date modified, etc. Most of this information is already in the inventory documentation Total Access Analyzer generates.

If you want to get container and document properties, turn this option on. This option adds time especially if you have a large number of tables and queries. This documentation does not affect any other documentation or analysis generated by Total Access Analyzer, but you may want it for completeness.

Compact After Documentation

This option compacts the output database after documentation. This can save considerable disk space, but takes extra time.

See Page 2: Specifying General Options


Performance Analysis Settings

Total Access Analyzer automatically generates extensive performance analysis of your system, database, and the objects selected for documentation. The performance analysis offers suggestions and warnings on items that should be examined to improve performance. They do not imply the flagged items need to be modified, just examined for potential improvement.

Several options are available to configure these tests from the [Performance Analysis Settings] button. Note that Total Access Analyzer performs many more tests than are shown here. This form shows only the tests with configurable values. For more information, see Errors, Suggestions, and Performance Tips.

Performance Analysis Settings Form

Maximum Number of Fields Per Table

Enter a number from 10 to 255. This value is the maximum number of fields that can exist in a table before the table is flagged as a potential performance problem. For example, if you consider 32 fields to be the maximum number of fields that should be in a table before performance suffers, enter that number here. The default value is 32.

Maximum Number of Fields per Query

Enter a number from 10 to 255. This value is the maximum number of fields that a query can return before the query is flagged as a performance problem. The default value is 16.

Minimum Acceptable RAM

Enter that amount of RAM in megabytes that should be on the computer. If available physical RAM is below this level, a performance problem is recorded. The default value is 32 megabytes.

Minimum Local Disk Free Space

Enter the amount of disk space in megabytes that should be available on local, non-networked drives. If the amount of space falls below this level, a performance problem is recorded. The default value is 100 megabytes.

Maximum Controls Per Form

Enter the maximum number of controls that can exist on a form before a performance problem is recorded. The default value is 50.

Maximum Form/Report Complexity

Enter the maximum control complexity that can exist on a form or report before the object is flagged as a performance problem. See Errors, Suggestions, and Performance Tips for more information. The default value is 50.

Maximum Controls Per Report

Enter the maximum number of controls for a report before a performance problem is recorded. The default value is 50.

Press [OK] to return to page 2 of the Document Wizard.

From the Document Wizard, press the [Next>] button to go to the last page of the Wizard.

See Page 2: Specifying General OptionsPage 2: Specifying General Options


Page 3: Output Database and Scheduling

The third and final page of the Documentation Wizard gives you information about the documentation and analysis that is about to be generated. It also allows you to specify the output database name, and to start or schedule the documentation:

Documentation Wizard (Page 3)

These are the items on this form:

More:

Number of objects to be documented

Free Disk Space

Output Database

Previous Documentation

Scheduling Documentation


Number of objects to be documented

The first line on this form tells you the number of objects you selected for Total Access Analyzer to document.

See Page 3: Output Database and Scheduling


Free Disk Space

This feature tells you how much disk space you have available. Depending on the complexity of your objects and the number of objects selected, the documentation can be many times the size of your database (excluding data). Obviously, without documenting your database, it is impossible to determine the size of the documentation. Much depends on the complexity of your objects.

If the documentation process is started and Total Access Analyzer runs out of disk space, the program is halted. Your database is not modified in this situation, but you will need to provide more disk space and restart the documentation process.

A good safety margin is to have at least 100MB free on the disk where you are placing the output database. Your system should also have enough free space for the Windows swap file (also known as the virtual memory file). Consult your Windows documentation for information on this file and its settings.

See Page 3: Output Database and Scheduling


Output Database

Total Access Analyzer stores the documentation of your database in a Microsoft Access database. This database is like any other Access database except it contains Total Access Analyzer documentation and has a file extension of .TDB instead of the standard Access extension of .MDB. Total Access Analyzer uses the .TDB extension as an easy way to identify a documentation output database.

By default, output databases are stored in a sub-directory called "Output" below the directory where Total Access Analyzer is installed. This default output directory keeps your output databases organized in a central location. By default, the output directory is:

C:\Program Files\FMS\Total Access Analyzer 8\Output

Total Access Analyzer automatically supplies a default output database name based on the name of the current database. For example, if you are documenting your SALES.MDB database, the output database is named SALES.TDB.

You can specify the output database name and location by pressing the […] button next to the output database name. This button brings up the "Select an Output Database" dialog:

Select an Output Database Dialog

Specify the name and location for your output database, then press the [Save] button. Total Access Analyzer automatically adds the TDB extension to the file name specified.

While you can use any legal filename, you cannot specify an extension other than TDB.

See Page 3: Output Database and Scheduling


Previous Documentation

If you previously documented this database and saved its output in the new output database, Total Access Analyzer provides information on the existing output database: the name of the database documented, the user who generated the documentation, and the date the documentation was generated. You can choose to either overwrite the existing .TDB or choose another name and/or path to which you would like to save the documentation.

Output databases can be quite large. If you already have an output database for the current database, you should decide whether you want to overwrite it with the new documentation or select another output database name. Normally, one set of documentation for each database is sufficient. However, for archival purposes, you may want to keep extra copies. The ideal number of copies to keep is limited by the amount of available disk space.

See Page 3: Output Database and Scheduling


Scheduling Documentation

Total Access Analyzer can be run immediately (press the [Finish] button) or scheduled to run at a later time. This option is useful if you want documentation generated when you know users are not active in the database. In a multi-user environment, it may be difficult during normal hours to document your database since users may have objects exclusively locked. By scheduling documentation after hours, you can minimize or eliminate conflicts with other users. Alternatively, you can copy your database to a local drive and document it there.

To schedule Total Access Analyzer to run at a later time, click on the [>>] button:

Clicking on this reveals scheduling information on the bottom portion of the page:

Schedule Documentation

Use the buttons next to Day, Hour, and Minute to set the date and time when Total Access Analyzer should start generating documentation. Simply select the time and date you would like the Analyzer to run and leave the current window open. The Total Access Analyzer will run at the designated time. Do not schedule documentation and close Total Access Analyzer or Microsoft Access.

Of course, if the scheduled time arrives and users are still using the database, Total Access Analyzer may still not be able to generate complete documentation.

If you schedule the documentation to run at a later time and then decide you would like to cancel the scheduling, click on the [X] button. This brings you back to the form without the schedule documentation information visible. From here you are given the option to click on the [Cancel], [Back], or [Finish] button. Click on the [Finish] button to begin documentation immediately.

See Page 3: Output Database and Scheduling


While Documentation Is Being Generated

While the documentation is being generated, the Generating Documentation form appears showing its progress. A status meter at the bottom of the form shows you the overall completion percentage.

Generating Documentation Form

During form and report documentation, there may be some flickering on the screen and the form or report properties and other windows may appear. This is the normal operation of Total Access Analyzer based on its use of VBA and does not indicate problems.

Canceling Documentation

You can cancel documentation at any time by pressing the [Cancel] button. When Total Access Analyzer reaches a stopping point, it displays this dialog:

Documentation Generation Form - Cancel Documentation

Press [Yes] to cancel documentation or [No] to resume without canceling.

Screen Savers

If you are using a screen saver with Windows, it may move slowly or appear frozen while the Total Access Analyzer is processing. Moving the mouse may not immediately restore the status screen. Do not be alarmed. Total Access Analyzer is processing while the screen saver is active. If you move the mouse while the screen saver is up, the program waits until the current object is documented, and then restores the status screen.

Documentation Completed

When documentation is completed, the Generation Summary form appears displaying summary information about the documentation generated:

Documentation Summary Form

There may be situations where problems arise and you do not get to this screen. If so, refer to the Troubleshooting section on page 4.

Problems Detected

Total Access Analyzer can detect a variety of problems in your database. This form shows what types of errors, suggestions and performance problems were found. To see a list of the actual items, use the Errors, Suggestions, and Performance tabs on the Documentation Explorer.  form.

Adding Comments

Comments can be added about the documentation you just generated by pressing the [Add Comments] button to bring up the Documentation Comments form:

Documentation Comments Form

Enter any comments or descriptive information you want to save with the documentation. Your comments can be viewed later when you select this output database again or under [Database] from the [View] section. See Viewing Documentation for more information.

When you are finished, press [OK] to return to the Generation Summary form.

Press the [Next>] button on the Generation Summary form to return to the Main Menu form.

Where to Go Next

Your database is now documented. From the Main Menu, you can press [View] to view the results. Select [Print] to preview and print reports. If this is your first time, we strongly urge you view the data and preview the reports before printing them. You will be surprised how large some of the reports can be. Imagine every property for every control on every object. The following chapters show how to view the documentation and use the reports.

If you press [Exit] you return to Microsoft Access. Your settings, object selections, and documentation are automatically saved for the next time you start Total Access Analyzer.


Troubleshooting Documentation Failures

Unexpected situations may cause Total Access Analyzer to stop before completing the documentation process. Unfortunately, if you encounter these problems, the documentation generated up to that point is not usable. When an unexpected error occurs, this form appears:

Total Access Analyzer Error Form

If the problem and solution is not listed below or you feel the problem is with Total Access Analyzer, please fax or E-Mail us a copy of the error file. The error file can be viewed by pressing the [View Error File] button. From there you can choose to print the error message out. The error file is TA8_ERR.TXT in the directory where Total Access Analyzer is stored.

FMS is committed to making bug-free products. Depending on the error, we may need a copy of your database to replicate the problem. We have attempted to anticipate all potential problems, but the variety of applications and limitations of Microsoft Access, prevent us from handling every possible situation. Nonetheless, we are committed to resolving and knowing any problems you encounter. As a rule, if the problem can be solved, we will send you an updated version of Total Access Analyzer for free.

More:

Problems while Generating Documentation

Out of Memory Issues

Other Known Problems


Problems while Generating Documentation

Total Access Analyzer is written in VBA and uses Microsoft Access as its host environment. If you encounter Invalid Page Faults (IPF) or other Microsoft Access errors while running Total Access Analyzer, the most common cause is corrupted objects in your database. The following steps should remove most problems with databases:

Steps to Fix Corrupted Databases

•	Make a backup copy of your database.

•	Repair your database with the Tools, Database Utilities, Repair option from the Access menu. Consult your Access documentation for more information.

•	Compact your database with the Tools, Database Utilities, Compact option from the Access menu.

•	Create a clean copy of your database:

1.	Create a new empty database by selecting File,New from the Access menu. Choose a temporary database name such as DB1.MDB.

2.	Choose the File, Import command from the menu. Select the original database.

3.	Import all objects.

4.	Close the new database, archive the original database, and then rename the new database to the original database's name.

•	Re-install Total Access Analyzer.
If you experienced a program crash while running Total Access Analyzer, there is a chance that objects in the Total Access Analyzer database may be corrupt. To eliminate this possibility, uninstall Total Access Analyzer by running the Add/Remove Programs program from the Windows Control Panel. Then re-install Total Access Analyzer from your original diskettes. This does not overwrite or erase existing documentation, but you do need to add them to your documentation list if you want to use them. See Selecting Another Output Database to View for more information.

These steps should remove any corruption or damage that may exist in your database. Run Total Access Analyzer again to ensure that you can document your database without problems.

See Troubleshooting Documentation Failures


Out of Memory Issues

If you encounter an out of memory error and have sufficient RAM, this usually indicates that Windows does not have enough free disk space on the drive it uses for its swap file.  To alleviate this problem, you need to free up more space on the drive (we recommend 100 megabytes free) for Microsoft Access to operate correctly.

See Troubleshooting Documentation Failures


Other Known Problems

There may be other reasons why documentation fails. Please read the README.TXT file of Total Access Analyzer or visit our web site for the latest information and any new problems and solutions.

See Troubleshooting Documentation Failures


View or Print?

You may be eager to just print all your documentation; however, we strongly recommend you first view it to:

1.	Verify all the objects you selected were successfully documented.

2.	Quickly spot errors in your application without printing a single page. If serious errors are listed, the documentation may be flawed or you may want to fix the problems and re-document your application before printing the reports.

3.	There are strengths and weaknesses to both viewing and printing the documentation.

First, there are some items that are only in reports:

•	Form and report blueprints

•	Bracketed module code printouts

•	Dictionary reports that show multiple types of data for an object (for example, the Table Dictionary report shows a table, its properties, its list of indexes and fields, and each of their properties).

Second, most of the data displayed under [View] is in datasheet subforms. These tabular views limit the way data can be displayed and labeled. Alternatively, reports are formatted very nicely with long fields wordwrapped, data organized and sorted in a variety of ways with more types of data displayed on one page than a datasheet can.

However, the reports can be huge with an overwhelming number of pages. Locating an object or other information is much easier by viewing the results, especially with the objects organized in a tree view hierarchy. There are also interactive options such as object selections, property filter, and general Access datasheet features (filter and sort) that are unavailable or less powerful in the reports.


Viewing Documentation - Quick Start
Quick Start

This section offers tips on learning how to view the documentation. Once you understand this section and view some of the results, read the rest of the chapter to get the most out of Total Access Analyzer. There are many ways to examine and use the documentation. Your ability to master the data presented can significantly reduce your efforts is maintaining and testing your databases.

From the Main Menu, click on the [View] button to display the Documentation Explorer.  form.

The Documentation Explorer Form

How the Form Works

The documentation you just generated is organized in an easy-to-use, hierarchical TreeView. This form behaves like the Windows Explorer. Folders contain individual items and may also include additional folders. You can easily "drill-down" to select more detailed items. When you select an item in the TreeView, its corresponding information is displayed in the tabbed panes on the right. Some tabs are only available for certain items. If data exceeds a column's width, you can widen the column or use [Shift-F2] to Zoom, just like any other Access datasheet.

Here are some highlights and tips on using the form:

Learn How the Form Works

Expand the Tables folder in the TreeView to open the list of tables. Click among the tabs to see data for all the documented tables. Select a table in the TreeView and notice how the tabs now display data for that table only. Expand the table for its Fields and Index folders. Opening those folders show, the fields and indexes folders. As you choose those, their information is presented on the right. Now, you're ready to really use the documentation and analysis!

View Results and Your Objects at the Same Time

While browsing the documentation, you can also open your database and view your objects. Just select your database from the Window menu. This technique is extremely useful for viewing the list of errors or suggestions, and simultaneously fixing your objects.

The Documentation Explorer.  also has a special feature to open the current object in design mode:

Open an Object from the Documentation Explorer

Just click on the desired object in the TreeView and press the right mouse button to load the menu. Select "Open in Design View" and the object appears on your workspace.

Fix the Errors Detected In Your Database

Click on the database icon (the first item in the TreeView), then click on the Errors tab. Ideally, there is nothing in the list. Every item listed is a serious problem in your database or a problem Total Access Analyzer encountered, which may indicate incomplete documentation. Many errors, such as invalid object references, can cause your system to crash.

If the list is long, you can use the [Filter Items] button to limit the types of errors displayed. You can also click on a different portion of the TreeView to limit the object types displayed. For instance, click on the Modules folder to see only module errors. For more information, see  Errors, Suggestions, and Performance Tips.

After fixing the errors, you may need the recreate the documentation. This is especially important if you fixed objects that could not be documented originally since they would affect the cross-reference and unused object analysis.

Suggestions and Performance Tips

Under the Suggestions and Performance tabs are many ways to improve your database. These are less serious than errors, but you should examine the items and determine whether you want to fix them. If you make many modifications, you should run the documentation again.

Diagrams of How Your Database Works

Expand on the Diagram folder in the TreeView to view the three diagrams: Application, Data, and Object. Click on the Summary tab to view the diagrams to see how your objects reference each other. For more information, see  Diagrams Folder.

Object Cross-Reference

See where objects are used across your entire database. Select the XRef tab and the desired folder or item.

For instance, to see where each table is used, click on the Table folder. Each referenced table is shown with information for its calling object. You can also view Field references by looking at a table's Fields folder.

Module Cross-Reference

Select the Modules folder and XRef tab. The Module XRef Filter lets you choose the output to view. You can see lists of procedure definitions, where procedures are used, constants, variables, etc. By clicking on items within the Modules folder you can reduce the items in the list. Modules are grouped into 3 major categories (general, form, and report).

Property Filters

Property filters let you view the value of one property across multiple objects. Select an object folder (tables, queries, etc.) and the Details tab. Specify a property in the Property Filter and see the values for that property across all the documented objects in the selected folder. You can switch between the folder or its controls (or fields). This lets you easily verify consistent property settings across objects.


Using the Documentation Explorer

The Documentation Explorer consists of these areas:

•	TreeView on the left

•	Tab Pane on the right

•	Toolbar across the top

•	Form Splitter and Resizer

More:

The TreeView

The Tab Pane

The Toolbar

Using the Form Splitter

Resizing the Form


The TreeView

The TreeView on the left of the form displays all the objects and collections you selected for documentation. You can expand and collapse the nodes in the TreeView by double-clicking on them, or by clicking on the +/- box to the right of the name. The TreeView has folders for major groups such as object types. Each folder can contain many individual items.

See Using the Documentation Explorer


The Tab Pane

The large area to the right of the TreeView is the Tab Pane with six tabs to display the documentation. The tabs show information based on the currently highlighted folder or item in the TreeView. Some tabs are not available for every item.

Summary Tab

This tab shows summary information for the object currently selected in the TreeView. The type of summary information shown depends on the type of object.

Details Tab

This tab shows detailed information for the object currently selected in the TreeView. The type of detail information shown depends on the type of object, but typically contains property information.

XRef Tab

This tab shows cross-reference information for the object currently selected in the TreeView. The type of XRef information shown depends on the type of object.

Errors, Suggestions, and Performance Tabs

These tables provide high-level analysis of your database including information on errors in your database, suggestions for improving the database, and performance problems detected. For more information, see System Category.

See Using the Documentation Explorer


The Toolbar

The toolbar at the top of the form has these buttons:

 Design Button

This button opens an object in design mode when it is pressed. This works for tables, queries, forms, reports, macros, modules, and command bars. Use this tool to quickly and easily open the object of the documentation you are viewing. If the object selected does not exist in the current database, an error message is displayed.

 Load Documentation Button

Press this button to select another documentation database. See Selecting Another Output Database to View for more information.

 Preview and Print Reports

Press this button to open the Print Documentation form. See  Quick Start for more information.

 Help

Press this button for on-line help on the Documentation Explorer.  form.

 Close

Press this button to close the Documentation Explorer.  form and return the Main Menu.


Using the Form Splitter

The Documentation Explorer.  form has a vertical splitter bar to adjust the relative size of the TreeView and Tab Pane. To use the Splitter, click on the vertical rectangle between the TreeView and Tab controls. While holding the mouse button down, move to the left or right to adjust the size.


Resizing the Form

The contents of the Documentation Explorer.  form resize as you enlarge or shrink the form. By default, the form is set for 640x480 resolution. If your monitor has higher resolution, enlarge the size of the form to display more documentation. Your adjustments are automatically saved for next time when you close this form.


Using Property Filters

Total Access Analyzer documents your objects' properties. The Detail tab usually displays the properties for the current object, but there are times you may want to see a property's settings across multiple objects. For example, as a quality control check on your forms, you may want to see the AutoCenter property value of every form.

This powerful functionality is available in Total Access Analyzer as Property Filters. Filters are available when you select any of the following folders in the TreeView:

Folder	Displays Property Values for:	See:
Tables	All tables or fields.	Tables Folder
Table Fields	All fields in the current table.	Fields Folder
Forms	All forms or form controls.	Forms Folder
Form Controls	All controls in the current form.	Controls Folder
Form Sections	All sections in the current form.	Sections Folder
Reports	All reports or all report controls.	Reports Folder
Report Controls	All controls in the current report.	Controls Folder
Report Sections	All sections in the current report.	Sections Folder
After selecting one of the folders listed above, click on the Details tab. The Details form appears with a combo box entitled "Property Filter":

Property Filter for Tables

Use this combo box to select the property you want to examine. The first time you use it, the form takes a moment to load the property values. All items in the current folder with the property are displayed. Objects without the property value (null values) are not listed. In the example above, the Option Group to the right of the Property Filter lets you switch between views of table and field properties. If you have Forms or Reports selected in the TreeView, you can switch to controls.

The list of properties available is controlled by options you selected for documentation. For more information, see Specifying Options.


Errors, Suggestions, and Performance Tips

One of the most powerful features of Total Access Analyzer is its ability to offer ways to fix your database and make it run better. This includes detection of errors that can crash your database, suggestions to improve your objects and code, and performance issues you should address. This information can be viewed from the Errors, Suggestions, and Performance tabs on the Documentation Explorer.  form.

Tab Pane with Errors Selected

Errors

This tab lists the errors that Total Access Analyzer detected in your database. Errors are triggered for objects that Total Access Analyzer could not document or for serious problems that may cause your database application to crash (e.g. invalid linked tables, references to missing objects, etc.). You should fix or at least understand every item in this list. After doing so, you may want to regenerate the documentation to make sure all your objects and cross-reference information is valid.

Suggestions

This tab lists Suggestions for improving your database. These suggestions focus on enhancing the reliability and maintainability of your application. Examples include lists of unused objects and code, form buttons that do nothing, procedures without error handling, etc.

Performance

This tab lists Performance tips to help you speed up your database. Not every performance tip can be implemented, but the list tries to highlight areas where you should focus. For example, it lists queries that return a lot of fields or use the "SELECT * " syntax. You may or may not be able to reduce the number of fields returned, but if you do, performance improves.

For a complete list of all the Errors, Suggestions, and Performance tips detected by Total Access Analyzer, print the reports from the System category. See System Category.

More:

Filtering by Object or Object Type

Filtering by Error Type

Additional Performance Tips


Filtering by Object or Object Type

The number of Errors, Suggestions, and Performance tips can be quite large. To reduce the number of records displayed, click on a different folder or item on the TreeView. This adjusts the list to just the currently selected item in the TreeView.

For example, to view all Errors, Suggestions, and Performance tips for the entire database, click on the top item (database node) in the TreeView and select the appropriate tab. To view all table errors, select the Tables folder in the TreeView. Similarly, you can reduce the list to a specific table by selecting that table in the TreeView.

In general, the Errors, Suggestions, and Performance tabs are available for top level objects (tables, relations, queries, forms, reports, macros, modules, command bars, and containers) and not available for sub-objects (fields, controls, sections, etc.). The one exception is module procedures because there may be a large number of items per procedure.

See Errors, Suggestions, and Performance Tips


Filtering by Error Type

The Errors, Suggestions, and Performance lists can also be filtered by the type of error, suggestion, or performance tip. Just press the [Filter Items] button. A filter form appears showing all available items for your current tab. For example, if you are on the Errors tab and press the [Filter Items] button, the Filter form shows a list of all available Error types:

Filter Form for Errors

Each error type is listed for you to select. A description of the currently selected error type appears in the lower box.

Select or de-select specific items by clicking on the associated checkbox, or use the [Select All] and [Clear All] buttons. Once you select the desired items, press the [OK] button to return to the Documentation Explorer.  form. The list is updated according to the items selected in the filter.

See Errors, Suggestions, and Performance Tips


Additional Performance Tips

On the Performance tab, there is a button titled [Additional Performance Tips]. This button brings up a form listing over 150 performance tips you can apply to your database:

Access Performance Tips Form

The information in this form is for reference only and does not relate to the documentation of your database (the list never changes). You should read these items and understand these issues when you design and develop your Access databases.

See Errors, Suggestions, and Performance Tips


Documentation by Object Type

The following sections outline the documentation available in the Documentation Explorer.  form. Organized by object type, it shows how the documentation is organized and explains the contents of each Tab for each type of object. In some cases, a particular tab is not applicable for a particular type of object and it is not listed. For example, when the General folder is selected in the TreeView, only the Summary tab has data.

In the remainder of this chapter, the term Folder is used to describe an entry in the TreeView that has a folder icon. The term Item is used to describe all other objects in the TreeView.

The following table is a quick reference for finding information on the documentation you are interested in:

Documentation	See:
Database	The Database Item
General, Inventory, Security, References, Containers	General Folder
Tables	Tables Folder
Queries	Queries Folder
Relationships	Relationships Folder
Forms	Forms Folder
Reports	Reports Folder
Macros	Macros Folder
Modules	Overview of Module Documentation
Command Bars	Command Bars Folder
Diagrams	Diagrams Folder


The Database Item

The first object in the TreeView is the Database item (name). This item represents the database whose documentation you are viewing. This is the data available under the tabs:

Tab Name	What's Displayed
Summary	Summary information about the database, including the full path and name and version number.
Details	All database properties.
Errors	All errors detected in the database.
Suggestions	All suggestions for the entire database.
Performance	All performance tips for the entire database.


Viewing Documentation - General Folder
General Folder

	The General folder contains information about your database at the highest level. There is an inventory list of all objects (regardless of which objects you documented), Access option settings, security information, library references, and container and document listings.
Summary Tab	Summary information on the database, including the full path, name, and version.
More:

Inventory Item

Access Options Item

Security Folder

Important Note on Permissions Documentation

References Item

Containers Folder


Inventory Item

Inventory contains a list of all top-level objects in the database. This includes tables, queries, forms, reports, command bars, macros, and modules.

Summary Tab	A list of the number of objects by type.
Details Tab	A list of each object name by type. Use the Filter to limit the list of objects by type.

See General Folder


Access Options Item

Access allows you to set a variety of options under the Tools|Options menu. Those settings are documented by Total Access Analyzer and shown here.

For more information on Access options, search Access online help for Options, setting.

Summary Tab	The number of options documented.
Details Tab	Each option and its value.

See General Folder


Security Folder

This folder contains security information on groups, users, permissions, and the workgroup. If you are not familiar with security, you can refer to the Access online system to learn about security.

A workgroup is a collection of users and groups defined for security. Information for a workgroup is stored in an Access database called a Workgroup Information File, which typically has an extension of .MDW. If you have implemented user-level security in your Access application, the information presented here is a useful way to see the specific users and groups of users you have defined. If you have not implemented user-level security, the default Access values show Admins and Users groups, and an Admin user.

Workgroup Information Files are linked to Access itself, not to particular databases. This means that multiple databases can share the same Workgroup Information File. Total Access Analyzer documents the Workgroup Information File in use by Access when documentation is generated.

For more information, search Access online help for Workgroup Information Files.

Summary Tab	Information about the workgroup, including the number of users and groups, and the path and name of the Workgroup Information file (.MDW) currently in use.
Errors Tab	Errors detected with security.
Groups Folder

This folder contains items for each group defined in the Workgroup Information file.

Summary Tab	The number of groups defined.
Errors Tab	Errors encountered while documenting groups.
Group Items

A group item appears for each group documented. If you implemented User-Level security in your application, this information is useful for tracking your group accounts. Otherwise, this section lists the default Access Users and Admins group accounts.

For more information on security, search Access online help for security, user-level security.

Summary Tab	The name of the group and the path and name of the Workgroup Information file (.MDW) where the group is defined.
Details Tab	The properties of the group.
Permissions	The group's permissions for each object.

See General Folder


Important Note on Permissions Documentation

The permissions documented by Total Access Analyzer are the Data Access Objects (DAO) permissions obtained using the Permissions and AllPermissions properties of Access Document objects. The names and types of permissions available through DAO are different from the permission names and settings available through the Access User Interface using the Tool, Security menu option.

Unfortunately, Microsoft provides no documentation on how DAO permissions map to the Access User-Interface permissions. This, combined with the fact that there is no way for Total Access Analyzer to get to the User-Interface permissions means that there appears to be a mismatch between the permissions documented by Total Access Analyzer and the permissions you see through the Access User-Interface. You can rest assured that FMS has tested the DAO permissions documentation very carefully and the values being returned are correct. To use the Total Access Analyzer permissions documentation correctly, you must become familiar with the DAO permissions constants and properties.

FMS regrets that we cannot accurately document permissions according to the terminology shown in the Access user interface, but the values we document are the exact values returned by the DAO interface.

For more information on the Permissions setting in DAO, search Access online help for Permissions property.

Users Folder

The Users folder contains all user objects in the group currently selected. If you implemented User-Level security on your database, this information is useful for tracking your user accounts. If you are not using User-Level security, this section lists the default Access User and Admin user accounts.

Summary Tab	The number of users defined.
Errors Tab	Errors encountered during user documentation.
User Items

Each user has an item shown here.

Summary Tab	The user's name and workgroup name. Of particular interest is the HasPassword property. This allows you to ensure that each user has a password set.
Details Tab	The properties of the user.
Permissions Tab	The permissions for the current user for all objects and containers.

See General Folder


References Item

Visual Basic for Applications (VBA) allows you to define references to other objects (libraries) from the Tool|References menu available when a module is open in design view. This item lists each reference in the current database. Note that Access automatically creates references in every database for:

•	The Access library

•	The VBA library

•	The Data Access Objects (DAO) library

Additionally, other references may be added by Access on your behalf. For example, when you place an ActiveX control on a form or report, Access automatically creates a reference to the ActiveX controls resource library file.

For more information on references, search Access online help for referencing, adding references.

Summary Tab	The number of references in the database.
Details Tab	Each reference in the database. Also shown are the reference properties such as the full path, name and version of each reference file.

See General Folder


Containers Folder

	Access organizes database objects into Containers and Documents. These objects hold permissions and other security settings implemented by Access User-Level security.  If you selected the "Document Containers and Documents" this node appears in the General folder of the TreeView.
The Container folder includes seven Containers each with a Document folder that holds documents. These are the eight containers defined by Access:(For more information on Container objects, search Access online help for Containers.)

•	Databases for internal objects maintaining the database.

•	Forms for all forms.

•	Modules for all standard (non-form/report) modules.

•	Relationships for table relationships.

•	Reports for all reports.

•	Scripts for all macros.

•	SysRel for relationship window layout information

•	Tables for all tables and queries.

Containers Folder

The Containers folder contains all container objects.

Summary Tab	A list of all container names.
Container Item

Each container in the database is an item. Each item also holds the Documents folder for the container.

Summary Tab	The name of the container.
Details Tab	The properties of the container.
Documents Folder

Each container has a Documents folder that holds its members. For example, every form in the database is represented by a form document in the Forms container.

Summary Tab	The name of each document in the container.
Document Item

Each document item in the container is shown.

Summary Tab	The name of the document.
Details Tab	The properties for the document.

See General Folder


Tables Folder

	The Tables folder contains information on the tables selected for documentation. This includes table properties, their fields and indexes, cross-reference, errors, suggestions, and performance tips.
Summary Tab	The number of tables documented and sorted by table type.
Details Tab	The Property Filter to see all values for a single property across all tables or fields. See Using Property Filters for more information on Property Filters.
XRef Tab	Every where each table is used among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	Errors detected among all tables.
Suggestions Tab	Suggestions for all tables.
Performance Tab	Performance tips for all tables.
More:

Table Item

Fields Folder

Field Item

Indexes Item

Index Items


Table Item

An item appears below the Tables folder for each table documented. Included below a table item is a list of properties, a list of the table's fields, and a list of the table's indexes.

For more information on table definitions, search Access online help for TableDef object.

Summary Tab	Basic information about the table, including the number of records in the table, and the cumulative size in bytes per record. Note that if you did not select "Document Record Counts" as an option (see Table Options), the value of this property is –1.
Details Tab	A list of all properties for the table.
XRef Tab	Every place the table is used among the documented objects. These are the fields: The Calling Object Type and Calling Object Name fields show the type of object and object name referring to the table. The Calling Child Type and Calling Child Name fields show which item in the Calling Object Name refers to the table. For example, if a table is referenced by a control on a form, the form is the Calling Object and the control is the Calling Child. The Referenced Object shows the table being referred to. The Variable field indicates whether the referenced table is a variable or expression. If this is the case, Total Access Analyzer cannot determine the validity of the reference, and automatically sets the Resolved field to No. If the Variable field is checked (Yes), you must manually inspect the reference to determine its validity. The Resolved field shows whether or not the referenced table exists. If the value is No, the table does not exist in the documented database. This would be a serious error in your database and is reported in the Errors tab of the table object. The Called In field shows the name of the property in the Calling Object or Calling Child that actually refers to the table.
Errors Tab	Errors documented for the table.
Suggestions Tab	Suggestions available for the table.
Performance Tab	Performance tips for the table.

See Tables Folder


Viewing Documentation - Tables Folder - Fields Folder
Fields Folder

The Fields folder is the collection of fields in the table.

Summary Tab	A list of fields in the table.
Details Tab	Property filter to view a property's values across all fields in the table.
XRef Tab	Every place a field in the table is used among the documented objects. For a description of the columns in this view, see  Table Item.

See Tables Folder


Viewing Documentation - Tables Folder - Field Item
Field Item

A field item exists for each field in the table.

Summary Tab	Basic information about the field, including its data type, size, and description.
Details Tab	List of all the field's properties. If you did not select the Document Field Properties option, this section is blank. See Table Options for more information.
XRef Tab	Every where the field is used among the documented objects. For a description of the columns shown in this view, see  Table Item.

See Tables Folder


Indexes Item

This item represents the collection of Indexes that belong to the table.

Summary Tab	List of indexes in the table.

See Tables Folder


Index Items

An Index item exists for each index in the table.

Summary Tab	Name of the index, its fields, and whether or not the index is the Primary key.
Details Tab	The index properties.

See Tables Folder


Queries Folder

	The Queries folder contains information on the queries selected for documentation. This includes query properties, their referenced fields, table joins, parameters, errors, suggestions, and performance tips.
Summary Tab	The number of queries documented and the number of queries by query type.
Details Tab	The Property Filter to see all the values for a single property across all queries. See Using Property Filters for more information on Property Filters.
XRef Tab	Every place queries are used among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	Errors detected for all queries.
Suggestions Tab	Suggestions for all queries.
Performance Tab	Performance tips for all queries.
More:

Query Item

Fields Folder

Field Item

Parameters Folder

Parameter Item

Joins Folder

Join Item


Query Item

An item appears below the Queries folder for each query documented. Included below a query item are folders for the fields used by the query, parameters, and joins.

For more information on query definitions, search Access online help for QueryDef object.

Summary Tab	Information about the query such as its SQL string and type.
Details Tab	The query's properties.
XRef Tab	Every place the query is used among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	All errors for the query.
Suggestions Tab	All suggestions for the query.
Performance Tab	All performance tips for the query.

See Queries Folder


Viewing Documentation - Queries Folder - Fields Folder
Fields Folder

The Fields Folder represents the collection of fields referenced by the query. Note that this is different from the DAO Fields collection of a Query which is the fields returned by a SELECT query. Such information is of little value to you as a developer because you are typically more interested in all the fields used or referenced by the query. There is a report available that shows the fields (columns) returned by queries.

For more information on the DAO Query Fields collection, search Access online help for QueryDef objects, defining.

Summary Tab	A list of fields referenced by the query.

See Queries Folder


Viewing Documentation - Queries Folder - Field Item
Field Item

A field item appears in the TreeView for every field referenced by the query.

Summary Tab	The name, type and other attributes of the field.

See Queries Folder


Parameters Folder

Parameter queries require input values before running. These values are typically used in the query's constraint (WHERE clause) and allow your queries to be very flexible. A query may have many parameters. Access queries support two types of Parameters, implicit and explicit. Implicit parameters are defined as a reference to a field or expression that cannot be resolved by the query engine. Explicit parameters are those that are explicitly identified using the Parameters dialog available while in query design under Query|Parameters.

For more information on parameters, search Access online help for Parameters collection.

All explicit and implicit parameters are documented in the Parameters folder.

Summary Tab	Each parameter and its name.

See Queries Folder


Parameter Item

Each parameter in the query has a parameter item.

Summary Tab	The name and data type of the parameter.
Details Tab	The properties of the parameter.

See Queries Folder


Joins Folder

When a query links tables or queries together, it does so with joins. Each join in the query is in the Joins Folder.

For more information on query joins, search Access online help for joins, join type.

Summary Tab	The joins in the query identified by number starting at 1.

See Queries Folder


Join Item

Each join in the query is a Join Item.

Summary Tab	The tables and fields used by the join, and the join type.

See Queries Folder


Relationships Folder

	You can define relationships among tables and queries from the Tools|Relationships menu. Tables and queries can be linked in 1-to-many, 1-to-1, or indeterminate relationships. You can also enforce referential integrity to ensure that data changes do not corrupt data.
Total Access Analyzer documents all relationships in your database, including those that are inherited from tables in linked databases. The Relationships folder contains all relationships in the documented database. For more information on relationships, search Access online help for relationships, database design.

Summary Tab	Each relationship and its name.
Details Tab	Allows you to preview and print a view of your Relationships window by pressing the [View Relationships Window] button. For more information see Relations Category.
Errors Tab	All relationship errors.
More:

Relationship Item


Relationship Item

A relationship item exists for each relationship.

Summary Tab	All relationship properties, including the names of the tables and fields the relationship uses, and the relationship type.
Details Tab	A graphical representation of the relationship.
Errors Tab	All errors for the relationship.


Viewing Documentation - Forms Folder
Forms Folder

	Every form selected for documentation is available in the Forms folder. Each form has an item for Printer settings and folders for Sections and Controls. The module code behind the forms is not included here. Look in the TreeView's Modules folder for form modules.
Summary Tab	The total number of documented forms and the number with and without code.
Details Tab	The property filter for forms. Select a property to see its values across all the forms or form controls. See Using Property Filters for more information on the Property Filter.
XRef Tab	Where forms are used among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	All errors documented for forms.
Suggestions Tab	All suggestions for forms.
Performance Tab	All performance tips for forms.
NOTE: Form errors, suggestions, and performance tips do not include information on the module code behind forms. Look in the Modules folder on the TreeView for Form errors, suggestions, and performance tips.

More:

Specific Form

Sections Folder

Section Item

Controls Folder

Control Item

Printer Item


Specific Form

Each documented form has a form item.

Summary Tab	Basic information about the form, including its name, description, and record source.
Details Tab	All form properties.
XRef Tab	Where the form is referenced among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	All errors documented for the form.
Suggestions Tab	All suggestions available for the form.
Performance Tab	All performance tips for the form.

See Forms Folder


Viewing Documentation - Forms Folder - Sections Folder
Sections Folder

Access forms are divided into sections. There are five possible sections for forms: Form Header, Form Footer, Page Header, Page Footer, and Detail. The Sections folder contains every section in the form. If a section does not exist, it is not listed.

For more information on form sections, search Access online help for sections (forms).

Summary Tab	A list of sections and their names.
Details Tab	Property filter for properties of all the sections in the form.

See Forms Folder


Viewing Documentation - Forms Folder - Section Item
Section Item

Each section in the form is represented by a section item.

Summary Tab	The section name and number.
Details Tab	All properties for the section.

See Forms Folder


Viewing Documentation - Forms Folder - Controls Folder
Controls Folder

The Controls folder contains every control on the form.

Summary Tab	A list of controls and their names.
Details Tab	Property filter for all controls on the form.

See Forms Folder


Viewing Documentation - Forms Folder - Control Item
Control Item

Each control in the form is shown as a control item.

Summary Tab	Basic control information such as type, caption, and control source.
Details Tab	All properties for the control. The properties listed depend on your selection of "Control Format Properties" and "Control Other Properties" before documentation. See Control Properties for more information on these options

See Forms Folder


Viewing Documentation - Forms Folder - Printer Item
Printer Item

This item represents the printer settings for the form. Printer settings are stored with each form.

Total Access Analyzer uses the PrtDevMode and PrtMIP properties of the form to determine the settings. These settings are available through the Access user interface by using the File, Page Setup dialog.

For more information on form printer settings, search Access online help for PrtDevMode property.

Summary Tab	The form's printer settings including the device name, paper size, and page orientation.
Details Tab	All printer settings.

See Forms Folder


Viewing Documentation - Reports Folder
Reports Folder

	Every report selected for documentation is available in the Reports folder. Each report has an item for Printer settings and folders for Sections and Controls. The module code behind the reports is not included here. Look in the TreeView's Modules folder for report modules.
Summary Tab	The total number of documented reports and the number with and without code.
Details Tab	The property filter for reports. Select a property to see its values across all the reports or report controls. See Using Property Filters for more information on the Property Filter.
XRef Tab	Where reports are used among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	All errors documented for reports.
Suggestions Tab	All suggestions for reports.
Performance Tab	All performance tips for reports.
More:

Specific Report

Sections Folder

Section Item

Controls Folder

Control Item

Printer Item


Specific Report

Each documented report has a report icon.

Summary Tab	Basic information about the report including its name, description, and record source.
Details Tab	All report properties.
XRef Tab	Where the report is used among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	All errors detected for the report.
Suggestions Tab	All suggestions available for the report.
Performance Tab	All performance tips for the report.

See Reports Folder


Viewing Documentation - Reports Folder - Sections Folder
Sections Folder

Access reports are divided into sections. There are various possible sections for reports: Detail, and Headers and Footers for Report, Page, and Groupings. The Sections folder contains all the sections in the report.

For more information on report sections, search Access online help for sections (reports).

Summary Tab	A list of sections and their names.
Details Tab	Property Filter for all the sections in the report.

See Reports Folder


Viewing Documentation - Reports Folder - Section Item
Section Item

Each section in the form is represented by a section item.

Summary Tab	The section name and number.
Details Tab	All properties for the section.

See Reports Folder


Viewing Documentation - Reports Folder - Controls Folder
Controls Folder

The Controls folder contains all controls on the report.

Summary Tab	A list of all controls and their names.
Details Tab	Property Filter across all report controls.

See Reports Folder


Viewing Documentation - Reports Folder - Control Item
Control Item

Each control in the report is shown as a control item.

Summary Tab	Basic information on each control including its type, caption, and control source.
Details Tab	All properties for the control. The properties listed depend on your selection of "Control Format Properties" and "Control Other Properties" before documentation. See Control Properties for more information on these options.

See Reports Folder


Viewing Documentation - Reports Folder - Printer Item
Printer Item

This item represents the printer settings for the report. Printer settings are stored for each report in the database.

Total Access Analyzer uses the PrtDevMode and PrtMIP properties of the report to determine the settings. These settings are available through the Access user interface by using the File|Page Setup dialog.

For more information on the report printer settings, search Access online help for PrtDevMode property.

Summary Tab	Basic information about the report's printer settings including the device name, paper size, and page orientation.
Details Tab	All printer settings.

See Reports Folder


Macros Folder

	Every documented macro is listed in the Macros folder. For each macro, its properties, macro lines, and sub-macro names are listed.
Summary Tab	The number of macros documented.
XRef Tab	Where macros are referenced among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	All errors documented for macros.
Suggestions Tab	All suggestions for macros.
Performance Tab	All performance tips for macros.
More:

Macro Item


Macro Item

A macro item exists for each macro documented.

Summary Tab	Macro name and number of lines in the macro.
Details Tab	All macro settings similar to the multi-pane view available when you open the macro in design view.
XRef Tab	Where the macro is used among the documented objects. For a description of the columns shown in this view, see  Table Item.
Errors Tab	All errors documented for the macro.
Suggestions Tab	All suggestions for the macro.
Performance Tab	All performance tips for the macro.


Overview of Module Documentation

Total Access Analyzer generates a large amount of information about the module code in your database. In addition to source code, Analyzer also documents and cross-references procedures, variables, constants, declarations, user defined types, class modules, and many other VBA constructs. Because the type of documentation generated for modules is different from other objects, module cross-reference is discussed in detail later.

More:

Types of Access Modules


Types of Access Modules

Access supports four types of modules. Regardless of type, all documented modules appear under the Modules folder in Documentation Explorer.

For more information on types of modules, search Access online help for modules.

Standard Modules

These are the regular (general) modules that appear in your database window. You create them by pressing the [New] button.

General Class Modules

Class modules are new in Access 97. They allow you to create powerful self-contained objects defined with properties and methods. Variables can be based on class modules and used by any module. Class modules are created from the Insert|Class Module menu and appear in the modules tab of your database window.

Form Class Modules

The code attached to a form is called a Form Class Module. You open a form's module by opening the form in design view and selecting View|Code from the Access menu. In Access 97, forms are considered class modules and can be invoked from any module.

Report Class Modules

Similar to Form Class Modules, reports have Report Class Modules.


Modules Folder

	The Module folder contains all the documented modules.  There are three folders under the Modules folder: General, Forms, and Reports. The General folder contains the modules that appear in the Module tab of the database window (standard and general class modules).

Every selected module, and form and report with module code, is listed. Within each module item is a Procedure folder containing its declarations and individual procedures.

If you selected the "Generate Module XRef" option (see Generate Module XRef ), all the General modules are included even if you did not select them individually. This is because Module XRef must analyze all the general modules to work correctly.

Summary Tab	The number of modules documented and the number of each type of module.
Xref Tab	Module XRef information for all modules. See Module Cross-Reference for information on Module XRef.
Errors Tab	All errors documented for modules.
Suggestions Tab	All suggestions for modules.
Performance Tab	All performance tips for modules.
More:

General Folder

Module Item

Procedures Folder

Procedure Item

Forms Folder

Reports Folder


Viewing Documentation - Modules Folder - General Folder
General Folder

This folder contains all standard modules and general (non-form and report) class modules.

Summary Tab	The number of general modules documented.
XRef Tab	Module XRef information for all general modules. See Module Cross-Reference for information.
Errors Tab	All errors documented for general modules.
Suggestions Tab	All suggestions for general modules.
Performance Tab	All performance tips for general modules.

See Modules Folder


Module Item

An item exists for every general module documented.

Summary Tab	Information about the module including its description and whether it is a class module.
Code Tab	The module's VBA source code by procedure. Use the vertical scroll bar, or [PgDn] and [PgUp] keys to move between the procedures.
XRef Tab	Module XRef information for the module. See Module Cross-Reference for information.
Errors Tab	All errors documented for the module.
Suggestions Tab	All suggestions for the module.
Performance Tab	All performance tips for the module.

See Modules Folder


Procedures Folder

The Procedures folder contains the module's declarations section and all its procedures.

Summary Tab	A list of all procedures in the module.

See Modules Folder


Procedure Item

Each procedure in the module is a procedure item. This list includes the declarations section of the module, shown as "(General Declarations)".

Summary Tab	The procedure definition including its type, start line, number of lines of code, parameters, etc.
Code Tab	The VBA source code for the procedure.
XRef Tab	Module XRef information for the procedure. See Module Cross-Reference for information.
Errors Tab	All errors documented the procedure.
Suggestions Tab	All suggestions for the procedure.
Performance Tab	All performance tips for the procedure.

See Modules Folder


Viewing Documentation - Modules Folder - Forms Folder
Forms Folder

The Forms folder includes all the documented form modules. This folder has the same structure as the General Folder.

See Modules Folder


Viewing Documentation - Modules Folder - Reports Folder
Reports Folder

The Reports folder includes all documented report modules. This folder has the same structure as the General Folder.

See Modules Folder


Module Cross-Reference

One of the most powerful features of Total Access Analyzer is its ability to perform module code analysis. This module analysis is called "Module XRef" and gives you an incredible amount of detail about your modules and how they work.

Module XRef information is displayed in the XRef tab when viewing a module or procedure object. The contents of the XRef tab changes according to the folder or object you are on in the TreeView. For example, when you click on the Modules folder and select the XRef tab, you are viewing cross-reference information for all VBA code across all modules. When you click on a specific module and select the XRef tab, you are viewing information for all VBA code in the current module.

Module XRef includes many types of information:

•	Procedure Definitions
Procedure declaration information.

•	Procedure Usage
Where and how procedures are used (called).

•	Procedure Calls
Procedures called by each procedure.

•	Constants
Every declared constant, its value, and module scope.

•	Variables
Every variable and how its used (defined, assigned a value, or referenced).

•	DoCmd Actions
Every DoCmd action and how it is used.

•	Labels
Every label definition and reference.

•	Function Calls
Every use of Access/VBA functions and the parameters passed.

•	Library Declarations
External procedures referenced with Declare statements.

•	User Defined Types
Every user defined type and its elements.

•	User Defined Type Variables
Variables based on user defined types.

•	Class Module Variables
Variables based on class modules.

•	Debug & Stop Statements
Everywhere a Debug or Stop statement is used.

•	DEF Types
Use of type definitions (DefInt, DefDbl, DefStr, etc.) to set variable types based on the spelling of their first letter.

For Module folders and items, the XRef tab includes a Module XRef Filter that lets you select the data to view:

Module XRef Filter Selections

These items are available if you are on the Modules Folder or module item. If you are on a procedure item, the module level XRef items (e.g. Library Declarations, User Defined Types, and DEF types) are not available. The selected XRef item stays the same as you move among modules. If you move between modules and procedures, each preserves its last selection.

Each Module XRef type is described in detail:

More:

Procedure Definitions

Procedure Usage

Common Fields

Procedure Calls

Constants

Variables

DoCmd Actions

Labels

Function Calls

Library Declarations

User Defined Types

User Defined Type Variables

Class Module Variables

Debug and Stop Statements

Def Type Statements


Procedure Definitions

Detailed information for the definition of every declaration, procedure, and property let/get/set. The documentation is based on this syntax for Subs:

[Private|Public] [Static] Sub ProcName [(arglist)]

or, this syntax for Functions:

[Private|Public] [Static] Function ProcName
  [(arglist)] [As ReturnType]

or, similar syntax for Property Let, Get, and Set. For the declarations section, most of the fields are not relevant:

Field Name	Description
Module Type	Type of module (Module, Form, or Report).
Module Name	Name of the module where the procedure is defined.
Procedure	Procedure name (or property name in class modules).
Static	Checked if the procedure is declared as Static.
Public	Checked if the procedure is declared as Public.
Private	Checked if the procedure is declared as Private.
Type	Usually, the procedure type (Sub or Function).  For class modules, if it is a property, the type (Get, Let, or Set).
Parameters	The procedure's parameters declaration.
Parameter Count	Number of parameters.
Optional Parameters	Number of optional parameters (as specified by the VBA Optional keyword).
Returns	If the procedure is a function, its explicit return type.
Comments	The comment block before your procedure declaration (or immediately after if no comments are found above your declaration).
Description	The first line of comment text which is assumed to be the procedure's description.
Start Line	The module line number where the procedure starts.
End Line	The module line number where the procedure ends.
Error Trap	Checked if the procedure has error handling code. If the procedure has an "On Error" line, it is considered to have error handling.
Code Exists	Checked if the procedure has any code in it. If the procedure only has comments, it is not considered to have code.

See Module Cross-Reference


Procedure Usage

Also known as the Procedure Cross-Reference, this list shows every place a procedure is used. This includes references from other modules, form and report events, macros, and even queries. This is extremely useful for understanding everywhere a procedure is called and the parameters used.

Field Name	Description
Referenced Module Type	Type of the module in which the referenced procedure is defined (Module, Form, or Report).
Referenced Module Name	Name of the module in which the referenced procedure is defined.
Referenced Proc	The name of the referenced procedure.
Calling Proc	The procedure calling the Referenced Proc. May be blank if the reference is not from a procedure (an event, macro, or query).
Calling Object Name	If there is a Calling Proc, the name of the module in which the Calling Proc is defined. Otherwise, it is the name of the object calling the Referenced Proc
Calling Type	The object type of the Calling Object Name.
Calling Child Type	If the procedure is called from a form or report control, the control type is shown (Command Button, ListBox, Label, etc.; it is a "child" of the Calling Object).
Calling Child Name	The name of the control referencing the procedure.
Event	If the procedure is called from a form, report, or control event, the event name is listed.
Parameters	The parameters used to call the procedure.
Line	If the procedure is referenced in module code, this is the line number in the Calling Object Name module where the reference is made.

See Module Cross-Reference


Common Fields

The remaining Module XRef listings all start with these three fields:

Field Name	Description
Module Type	Type of module (Module, Form, or Report).
Module Name	Module name.
Procedure	Name of the procedure documented.

See Module Cross-Reference


Procedure Calls

For every procedure, the procedures it uses are listed. In addition to the common fields listed above, these fields are shown:

Field Name	Description
Referenced Procedure	The name of the referenced procedure.
Parameters	The parameters used in the procedure call.
Referenced Module Type	The type of module in which the referenced procedure is defined.
Referenced Module Name	The name of the module in which the referenced procedure is defined.
Line	Module line number where the object is referenced.

See Module Cross-Reference


Constants

Every constant declaration and its assigned value is listed. Constants are defined by this syntax:

[Public|Private] Const constName [As type] = value

In addition to the Common Fields, these fields are shown:

Field Name	Description
Constant	The name of the constant.
Value	The value of the constant.
Type	Constant declaration type (Const, Public Const, or Private Const).
Dim Type	Data type of constant (string, integer, etc.), if specified.
Line	The module line number where the constant is defined.

See Module Cross-Reference


Variables

The list includes every variable (including constants) and how it is used. In addition to the Common Fields, these fields are shown:

Field Name	Description
Variable	The name of the variable.
Parameters	Array parameters, if any.
Type	How the variable is referenced: Const – the variable is declared as a constant Dim – the variable is declared Assigned – the variable is assigned a value Referred – the value of the variable is used Param – the variable is a procedure parameter
DIM Type	If the variable is defined in a Dim statement, the data type of the variable is listed (String, Long, Boolean, etc.).
Line	The module line number where the variable is used.

See Module Cross-Reference


DoCmd Actions

Every use of DoCmd in your code is documented. DoCmd has this syntax:

[Application.]DoCmd.Action Arguments

In addition to the Common Fields, these fields are shown:

Field Name	Description
Action	The DoCmd action (Hourglass, Echo, OpenForm, Close, etc.).
Arguments	The arguments of the DoCmd action.
Line	The module line number where DoCmd is called.

See Module Cross-Reference


Labels

Every label definition and reference is documented. Labels are used in a variety of syntax. Labels are defined this way:

LabelName:

Or referenced this way:

GoTo LabelName
Resume LabelName

In addition to the Common Fields, these fields are shown:

Field Name	Description
Line	The module line number where the label is used.
Label	The name of the label.
Type	The type of label reference: Define, GoTo, or Resume.

See Module Cross-Reference


Function Calls

Shows references to Access/VBA functions such as IsNull, Int, Mid$, Len, etc. (These are not calls to user defined functions which are part of the procedure calls list.) In addition to the Common Fields, these fields are shown:

Field Name	Description
Function	The name of the function being called.
Parameters	The parameters passed to the function.
Line	Module line number where the function is called.

See Module Cross-Reference


Library Declarations

Library declarations are procedures stored in external DLL or EXE libraries. They are defined with the Declare syntax:

[Public|Private] Declare Sub procname Lib libname
  [Alias aliasname] [([arglist])]

There is a similar syntax for declared functions which have a return type. In addition to the Common Fields, these fields are shown:

Field Name	Description
Type	The declared procedure type: Function or Sub.
Procedure	Name of the declared procedure.
Alias	Alias of the declared procedure, if any.
Library	Name of the EXE or DLL library.
Parameters	Parameters of the declared procedure, if any.
# of Params	Number of parameters.
ReturnType	The data type of the return value if it is a function (String, Boolean, Integer, etc.).
Line	Module line number of the Declare statement.

See Module Cross-Reference


User Defined Types

User defined types are defined in the declarations section of a module with this syntax:

[Private|Public] Type typeName
  element1 [(subscripts)] As varType1
  element2 [(subscripts)] As varType2
  ...
End Type

There is one record for every user defined type and element. In addition to the Common Fields, these fields are shown:

Field Name	Description
Type Name	Name of the user defined type.
Public	Checked if the Type is defined as Public.
Private	Checked if the Type is defined as Private. Types defined in forms and reports are always Private.
Number	Element number starting at one and incremented for each element in the type.
Variable	Variable (element) name.
Parameters	Parameters if the variable (element) is an array.
Dim Type	Variable (element) type.
Line	Module line number where the type element is defined.
See Module Cross-Reference


User Defined Type Variables

Every variable based on a user-defined type is listed. The documentation is based on this syntax:

Dim varName As UserDefinedType

In addition to the Common Fields, these fields are shown:

Field Name	Description
Type Name	Name of the user defined type.
Variable	Variable (element) name.

See Module Cross-Reference


Class Module Variables

Every variable based on a class module is listed. The documentation is based on this syntax:

Dim varName As ClassModuleName

In addition to the Common Fields, these fields are shown:

Field Name	Description
Variable	Variable based on a class module.
Class Name	Name of the class module referenced.

See Module Cross-Reference


Debug and Stop Statements

Shows all references to Debug.Print and Stop statements. You should examine this list since these debugging commands should not be running in a production database. (Of course, you may have logic that allows them to work when you are debugging). In addition to the Common Fields, these fields are shown:

Field Name	Description
Line	Module line number of the command.
Command	The command used: "Debug.Print" or "Stop".

See Module Cross-Reference


Def Type Statements

Every use of a Deftype statement is documented. This command is used to set the data type of variables based on their first letter. This is an old style of Basic programming and not recommended since you can now explicitly define the data type of each variable.

For more information, look under "Deftype Statements" in the Access online help. There are many Deftype commands: DefBool, DefByte, DefInt, DefLng, DefCur, DefSng, DefDbl, DefDec, DefDate, DefStr, DefObj, DefVar. They all share this syntax:

DefInt LowLetterRange[, HighLetterRange]

The definition can be set for one letter or a range of letters. These fields are shown:

Field Name	Description
Module Type	Type of module (Module, Form, or Report).
Module Name	Module name.
Define Type	The Deftype: DefInt, DefLng, DefStr, etc.
Low Range	The first letter of the range.
High Range	The last letter of the range.
Line	The module line number of the DefType.

See Module Cross-Reference


Command Bars Folder

	The Command Bars folder contains all the documented command bars. Each command bar contains controls that may also contain additional controls.
Summary Tab	A list of all command bars.
Details Tab	Property Filter for property values across all documented command bars or their controls. See Using Property Filters for more information on using the Property Filter.
XRef Tab	Where command bars are referenced among the documented objects.
Errors Tab	All errors documented for command bars.
More:

Command Bar Item

Controls Folder

Control Item


Command Bar Item

Each documented command bar is an item in the list.

Summary Tab	Basic information about the command bar including the number of controls it has and whether it is a built-in command bar.
Details Tab	The command bar properties.
XRef Tab	Where the command bar is used among the documented objects.
Errors Tab	All errors documented for the command bar.

See Command Bars Folder


Viewing Documentation - Command Bars Folder - Controls Folder
Controls Folder

Each command bar contains one or more controls. This folder contains all the controls in the command bar.

Summary Tab	A list of all controls in the command bar.

See Command Bars Folder


Viewing Documentation - Command Bars Folder - Control Item
Control Item

Each control in the command bar is shown in this section of the TreeView. Note that command bar controls may contain other controls. When this occurs, Total Access Analyzer adds an additional folder node below the control item. Expand this node to see the controls contained in the control.

Summary Tab	The name and type of the control.
Details Tab	Every control property.

See Command Bars Folder


Diagrams Folder

	Total Access Analyzer generates three types of diagrams. The diagrams are the highest summary level analysis of your database. Unlike the previously described cross-reference information that only shows a relationship between two objects, the diagrams show multi-level hierarchies across multiple objects and really show how your application works.
Please remember, the diagram is limited by the capabilities of Total Access Analyzer. Some object references and procedure calls are not documented and therefore not included in the diagram. This is particularly true of forms and reports referenced by variables in your code. See Documentation Limitations for more information.

More:

Viewing the Diagrams

Diagram Descriptions


Viewing the Diagrams

When you select the Summary tab, Total Access Analyzer loads the diagram tree. Depending on the number of objects and complexity of your application, this may take a moment. As the diagram is prepared, a status meter shows its progress. When completed, the diagram TreeView appears:

Viewing a Diagram

Root Level Objects

The first or "root" level objects are displayed. Each object can be opened to show branches representing dependencies upon it. Although there are lines between the root level objects, there are no dependencies between them. They are just sorted by type and name.

These buttons are available at the top of the diagram:

Search Button

The [Search] button allows you to find a value in the diagram. This is particularly useful if the diagram is large. Enter a value in the combo box and press the [Search] button. Values entered are added to the combo box for you to select again.

+ and - Buttons

Within the diagram, you can expand individual branches by clicking on the [+]next to the branch. Click on the [-] box to close the branch. To expand all the branches, press the [+] button next to the [Search] button. The [-] button collapses all the branches.

Details and Back Buttons

The first time an object is encountered in the diagram, all of its branches are drawn. If the same object is used again, a reference is made to the original drawing. By showing each object's tree once, the diagram is considerably smaller and more manageable.

An object already drawn in the diagram is displayed with a [+] at the end of its line. If you click on that line, the [Details] button is enabled. Pressing the button jumps you to the first use of that object and its diagram. The [Back] button takes you back to where you last pressed [Details]. This lets you easily "drill-down" and go back through the items that you reviewed.

On the diagram reports, this corresponds to the [See Num] column that displays the line number of the original call.


Diagram Descriptions

There are three types of diagrams: Application, Data, and  Object:

Application Diagram

The Application Diagram shows the hierarchical flow of your entire application. It starts with the Startup form or Autoexec macro, then shows what procedures and objects it calls, along with the same for the called objects. Every form, report, or procedure that is not called by another object starts its own tree. This provides a visual overview of all your procedure calls, macro calls, and form and report events, and is the most detailed of the three diagrams.

Application Diagram from Documentation of Northwind.mdb

In this example, the first object is the form named Startup. This form has a command button named "OK" that invokes the CloseForm procedure on its OnClick event. The form's OnOpen event invokes a procedure that calls the IsItAReplica function. The form's last item is an OnClose event. The next form is then drawn (Categories).

Every form, report, or procedure not used by another object has its own diagram. Not every form has it's own diagram at the root (first) level. For instance, if a form is used by a procedure through an OpenForm command, the form's diagram is drawn from the procedure calling it, and would not appear on its own.

Data Diagram

The Data Diagram shows how your database's tables are used across your application. The Table XRef (see Tables Folder) shows which objects reference each table. The Data Diagram shows that plus the objects that use the objects referencing each table. This illustrates the entire family of objects related to each table.

Data Diagram from Documentation of Northwind.mdb

This example shows only a partial view of the objects related to the Categories table. The first branch shows that the query Alphabetical List of Products uses the Categories table. That query is used in a report that is opened by a form's command button's Hyperlink SubAddress property. The form is referenced by two other procedures. Several other queries also use the Categories table including Catalog, Products by Category, and Sales by Category.

NOTE: Beyond the first reference, the data in the table is not necessarily used by subsequent items. For instance, a query that uses a table may be used by a form that does not use any fields from the table. Also, objects that open forms and reports referencing the table definitely do not use data from the table. They are included in the diagram to illustrate all objects directly and indirectly related to the table.

Object Diagram

The Object Diagram shows all the objects a form, report, or query is dependent on. You can quickly see a form, its subforms, and the queries, tables, and macros they use. The Object Diagram is almost like the Data Diagram in reverse. Rather than seeing how data flows from a table, the Object Diagram reveals what flows into an object.

Unlike the Application Diagram, the Object Diagram includes form and report use of tables and queries, and excludes procedure calls. This significantly simplifies the diagram.

Object Diagram from Documentation of Northwind.mdb

In the example above, you can easily see the Categories form's record source table, and subform source object and record source. The Customer Labels Dialog form's use of tables and macros are also easy to see.


Selecting Another Output Database to View

Total Access Analyzer stores documentation in output databases for each database you document. This lets you easily retrieve any previously generated documentation on other databases. When you open the Documentation Explorer. , Analyzer retrieves the current output database: the one you were last viewing or the one you just generated. It does not automatically load the documentation for the current database. This is an important distinction. If you documented database DB1.MDB, then opened DB2.MDB, started Total Access Analyzer and pressed [View] from the Main Menu form, you would be viewing documentation for DB1.MDB.

Load previously saved documentation by clicking on the open database button [image] on the form's toolbar. The Select Output Database form is displayed:

Select Output Database Form

Every time you document a database, Total Access Analyzer keeps track of it and lists it here. The following information is provided:

•	The path and name of the database that was documented

•	The path and name of the output database containing the documentation

•	The user who generated the documentation

•	The date and time the documentation was generated

You can select one of these output databases to load and make it the current data in the View and Print sections, view the comments for a database, add a documentation database not in the list, delete a database, or print the list of output databases.

More:

Selecting an Output Database

Viewing Comments for an Output Database

Adding an Output Database

Deleting an Output Database from the List

Printing the List of Output Databases


Selecting an Output Database

By selecting an output database, you are "pointing" Total Access Analyzer to the documentation it contains. The Documentation Explorer.  and all reports get their data from the selected output database.

To select an output database, click on the appropriate row in the list of available output databases then press the [Select] button. A dialog asks if you want to make the selected database the active documentation. Press [Yes] to load it.

See Selecting Another Output Database to View


Viewing Comments for an Output Database

You can view the comments saved in any output database (see While Documentation Is Being Generated) by highlighting the output database and clicking on the [Comments] button. The Documentation Comments form appears. You can view or edit the comments in this form. When you are finished, press [OK] to return to the Select Output Database form.

See Selecting Another Output Database to View


Adding an Output Database

If you have an output database that does not appear in the list, you can add it by clicking on the [Add] button.

You are then prompted for the directory and output database. This option is useful if you receive an output database from another Total Access Analyzer user or another machine and want to use it.  It is also necessary if you re-installed the Total Access Analyzer.

See Selecting Another Output Database to View


Deleting an Output Database from the List

If you no longer need an output database, you can delete it by highlighting the database and clicking on the [Delete] button. Total Access Analyzer asks you for confirmation. Press [Yes] to delete the output database and remove it from the list. Press  [No] to return to the form without any changes.

If the output database was already deleted outside of Total Access Analyzer (from Windows Explorer or DOS for example), a message appears warning you that the output database does not exist. Press [Yes] to delete the output database from the list, or [No] to return to the form without any changes.

You may want to make a backup copy of your documentation databases before you delete them. Using compression software such as that found in commercial backup programs, you can store fairly large output databases in a much smaller amount of disk space.

See Selecting Another Output Database to View


Printing the List of Output Databases

If you would like a printed list of output databases, click on the [Print List] button. This previews the Output Databases report. You can print it from the File|Print menu. When you are finished, close the report.

See Selecting Another Output Database to View


Printing Documentation - Quick Start
Quick Start

Total Access Analyzer includes over 220 reports. While this may seem like a large number, the types of documentation and analysis generated are also numerous. This section is designed to give a quick overview of how to select a report and some of the highlights. Once you work through the Quick Start, read the rest of this chapter to get more information on how these reports can help you maintain your database.

Opening the Print Documentation Form

From the Total Access Analyzer Main Menu form, press the [Print] button. The Print Documentation form appears:

The Print Documentation Form

Use this form to select, preview, and print reports. You can also set options that control the appearance of the reports.

Using the Icon Menu

The icon menu on the left itemizes the report categories and filters the list of available reports on the right. By default, "All" is selected, and all reports are shown on the right. The report categories extend beyond the list. Make sure you scroll down the list to see the other categories.

Previewing a Report

Once you have selected the appropriate category, scroll through the list of available reports on the right. Select a report by clicking on it (you don't need to actually put a check in the box, just make it the current record). You can press the [Thumbnail] view to see a sample of the report layout or press the [Preview] button to display the report (with your data) on the screen. Use the toolbar buttons to change the zoom level, or select the number of pages to preview at one time. You can also print from the File|Print menu.

Printing Multiple Reports

To print multiple reports, select the reports by clicking on the checkbox to the left of the report name. When you have selected all your reports, press the [Print] button. A confirmation dialog appears. Press [OK] to send all the reports to your printer.

Filtering Reports

Many reports support object filtering. They are identified by a "Yes" in the Filterable column. Object filtering lets you limit the data presented in the reports to just the objects you want. Select the "Filtered" option group button and click on the [Object Filter] button to specify the objects to filter. This sets the filter and the "Filterable" reports will only include the objects you selected. See Print Filter for more information.

Customizing Reports

All the reports allow you to customize their headers and footer. There are also a variety of ways to print your module code. These settings are available under the [Options] button. See Changing Report Options for more information.

More:

The Reports to Select


The Reports to Select

If you are printing reports for the first time, you should preview these reports:

•	System: Report List. This report lists every report in Total Access Analyzer by category with a description of each. The other system reports for errors, suggestions, and performance tips are also useful for understanding what Total Access Analyzer can detect.

•	Errors: Print the list of errors and fix them.

•	Suggestions: Examine the suggestions offered.

•	Performance: Look at the performance tips.

After printing the Errors, Suggestions, and Performance reports, you should address the items listed. If you make extensive changes, you should run the documentation again. Assuming everything is okay, these reports are very valuable:

•	Diagrams: the Application, Data, and Object diagrams show you how your database works.

•	Module: the bracketed module code printout.

•	Module XRef: there are many useful reports here. Start with the Module Analysis and Procedure List reports.

•	Tables: Field reports showing field definitions for each table. The Table Fields with Different Types report lists fields with different Data Type and Size settings. Use this report to make your fields consistent across all your tables.

•	Dictionary reports showing detailed information for each object. They are available under Tables, Queries, Forms, Reports, and Macros.

•	Form and Report blueprints.

•	Relations: Relationship window.

These are just some of the highlights. Eventually, you will want to view and understand what all the reports can do for you.

Learning More

The rest of this chapter describes each of the operations available in Print Documentation form in detail. First, a description of this form is provided including details on customizing the reports. Then, every report category is described with its highlights mentioned.


Selecting Reports

Do not select all reports and print them unless you are aware of the amount of paper it will use! We strongly suggest you preview the reports you are not familiar with first. Depending on the complexity of your database, you can easily print thousands of pages if you are not careful.

Note that the reports are based on the current output database. On the Documentation Explorer.  form there is a [Select Database] button on the toolbar that lets you choose the output database to load. This can be different from the currently opened database.

Selecting Categories and Reports

The reports in the Print Documentation form are organized into categories similar to those in the Documentation Explorer.  form. The categories are listed in the icon menu on the left side of the form. Select a category by clicking on its icon on the left of the screen. The [All] category shows all reports.

To select a report, click on the check box to the left of the report name. A checkmark appears in the check box. To deselect a report, click on the check box again. The checkmark disappears. Pressing the [Clear] button deselects all the reports for the currently selected category.

Selecting a report does not print it. You may choose several reports. When you have completed selecting reports, press [Print] to send all the selected reports to the printer.

Depending on the number of objects documented and the reports selected, printing can take a long time. Most Total Access Analyzer reports have graphics: titles, lines to separate data, etc. The blueprint reports are particularly graphic intensive. These reports take more time to print than simple text reports.

Previewing Reports

Because there are so many reports in Total Access Analyzer, selecting the correct reports may seem like a daunting task. Don't worry, there are features to help you understand the reports. Before printing a report, you can preview it on the screen.

Just click on a report name and press [Preview]. The report appears in preview mode. The preview is only for the report highlighted, not for the selected reports. In preview mode, you can click anywhere on the report to zoom or un-zoom the display. Use the navigation buttons at the bottom of the window to move among the pages. You can also use items on the Access Print Command Bar or menu to print the report, change the zoom percentage, and change the number of pages displayed.

To close the report, choose File|Close, or click on the [X] box at the top right corner of the report's window. Due to a bug in Access 97, the report's control menu sometimes disappears. (The control menu is in the upper right corner with the Minimize, Maximize, and Close buttons). If this happens, be careful not to click on the [X] box in Access's control menu! If you do, Access closes. If the report's control menu disappears, just click where it should be and the icons will appear.

Viewing Thumbnails

If you do not have data for a report, you can still see what the report looks like by using the [Thumbnail] feature. Just click on any report in the list and press the [Thumbnail] button. A sample of the report appears with a brief description:

Report Thumbnail

The image in the Thumbnail is not from your database—it is only an example of the report's layout.

Printing Reports

The [Print] button lets you print all the selected reports at once. The reports are printed in the order they appear in the list. While the reports are printing, a status form appears showing which report is being sent to the printer. You can press the [Cancel] button on this form to stop printing the current report and return to the Print Documentation form.

Remember, the selected reports span categories and may include items not visible in the current view based on the report category selected. To see all your selected reports, click on "All" in the Print Documentation form's icon menu.


Print Filter

If you documented many objects, you may only want a subset of those objects in your reports, especially the large detailed reports. The Filter feature below the list of reports lets you limit the objects in the reports.

Filter Option

By default, [All Objects] is selected and the reports include all the documented objects. To filter objects, select [Filtered] and press the [Object Filter] button. The Select Object to Print form appears:

Filter Object Selection Form

By selecting the category from the icon menu on the left, you can select objects from a list of all objects or by object type. Check the objects to include in the reports and press [OK] to return to the Print Documentation form. The Filtered option is selected indicating the filter is active. The filter remains in effect until you select [All Objects] or create new documentation.

The Object Filter does not apply to all reports. Only reports with a "Yes" in the "Filterable" column of the Print Documentation form respect the filter. For instance, the filter does not affect diagram reports.


Changing Report Options

You can customize the appearance of the reports. Add your own headers, footers, etc. Report options are global to Total Access Analyzer, they are not saved with each output database. Press [Options] to bring up the Report Options form:

Report Options Form

The top half of the form contains controls for setting options. As you set options, the sample report on the bottom half of the form updates the options that you select. These options are available:

Header 1

This text appears at the top left corner of every report page. This can be your company name, a project name, or any text. This field can contain up to 40 characters.

Header 2

This text appears below Header 1 on every report page. You can have Total Access Analyzer insert the name of the database by typing #DATABASE# anywhere in the field. For example, the default setting is "Database: #DATABASE#" which prints "Database: Northwind.mdb" at the top of each page (assuming Northwind.mdb is the documented database).

Footer

This text appears at the bottom left of every report page. This field can contain up to 40 characters. By default, this field is blank.

Use A4 Paper

Check this option to use A4 paper instead of the standard 8.5 x 11 size for all Total Access Analyzer reports.

Separator Lines

Many of the reports have an optional line between records. Check this option if you want Total Access Analyzer to print this line. The line makes it easier to read the reports, but can be annoying and increase the time a report takes to print. By default, this option is enabled.

Date/Time Format

You can control the format of the date and time printed at the top of each report page. To use the short date format (e.g. 7/12/97), press [Short]. To use the long date format (e.g. July 12, 1997), press [Long]. The date and time printed is when the documentation was generated, not the current date and time. By default, this option is set to Long.

Total Access Analyzer reads your Control Panel settings for international date and time formats

Report Heading Colors

By default, the report headers are set to white on black. Some older printers (such as the HP LaserJet Series II) do not support the white on black color scheme. If your printer has problems printing this or you do not want this, change the option to "Black on White".

More:

Setting Module Printing Options


Setting Module Printing Options

There are two reports to print module code. The standard and bracketed Module Printout reports (for more information, see Modules Category). The following options control how the Standard Module Printout report displays your source code. Press the [Module Options] button to load the Module Options form:

Module Options Form

More:

General Appearance

Comments

Line Continuation

Finishing


General Appearance

These settings adjust the appearance of your module printouts. As you change the options, the sample report's layout reflects the new choices.

Green bars

Enable this option to create a "green bar" effect with alternating gray rectangles. This makes the code easier to read, and by default, is enabled.

Bold Proc Declarations

Enable this option to print procedure declarations in bold text. This makes it easier to see where each procedure begins. By default, this option is enabled.

Font

Select the font to use for lines of code. Total Access Analyzer automatically reads the list of fonts available on your system and displays them in this combo box. You should use a mono-spaced font so code lines up correctly. By default, an 8-point type size is used. Make sure the font you select supports this size.

See Setting Module Printing Options


Comments

Comments lines can have their own special formatting to make it easier to differentiate between code and comments. These settings are only applied to comments on a line by themselves. Comments appearing at the end of the line after regular code are formatted using the same font as the code itself.

You can set the text to Bold and/or Italic styles, and specify the Font.

See Setting Module Printing Options


Line Continuation

Lines of code in Access can be very long and wordwrap in the report. To show a line is linked to the previous line, a special symbol is added to the beginning of the wordwrapped line. By default, the "->" symbol is added. If you prefer another symbol, select "Custom" and enter your own.

NOTE: The line continuation symbol added in the reports is different from the VBA underline (_) character at the end of the line. The VBA character is always shown, but it may or may not be at the wordwrap point in the report.

See Setting Module Printing Options


Printing Documentation - Setting Module Printing Options - Finishing
Finishing

Once you have set the report options, press [Close]. The form closes and returns to the report selection form. Your options are automatically saved. The report options are global to Total Access Analyzer; they are not saved differently for each output database. Your filter, however, is saved in the output database.

See Setting Module Printing Options


Reports with No Data

There are times when a report you select has no data. This can be caused by a variety of factors:

1.	You did not select any objects of a certain category for documentation.

2.	You did not select the options necessary to generate the documentation required for a report. For example, if you did not select the "Generate Module XRef" option, none of the Module XRef reports have data.

3.	There were no errors, suggestions, or performance tips generated for your database.

Empty reports are identified in one of two ways. If you preview a report with no data, a message box tells you the report is empty. After acknowledging this message box, you are returned to the Print Documentation form.

If you select multiple reports and press the [Print] button, if any empty reports are encountered, an extra report called "Empty Reports" is printed (after all your reports) listing every selected report without data.


Report Categories

Reports are grouped into categories similar to the Documentation Explorer. . This section assumes you have a general understanding of the data available under each category. If you are not sure, refer to the previous two chapters.

Many of the reports contain the same data, but are sorted differently. Each sort provides a different perspective of the data. For instance, the reports sorted by property name lets you view all the values for a single property across your objects and is ideal for verifying consistency. Special dictionary reports provide extensive information on the documented objects. (They are called dictionaries because they provide the complete definition of a particular object). Save the trees! You NEVER need to print all the reports for all the objects. Some are huge. Determine which reports are appropriate for you, then print them.

If you are only interested in information on specific objects, learn to use the object filter (see Print Filter).

The following sections describe each report category, and highlights reports to help you decide which ones you need.


Errors Category

This category shows errors detected in your database. Errors are defined as problems that can potentially cause your database to work incorrectly, crash, or lose data. You should examine these items carefully and resolve them.

Under the System category, the "Total Access Analyzer List of Errors" report lists each type of error the program detects.

•	The "By Error, All" report includes all errors detected, sorted by error type (with descriptions) and object.

•	The error reports sorted by Object Name are useful as a list of items to fix in your database. All errors for each object are grouped together making it easy to fix all the problems for an object at one time.

•	The "Object Reference Errors" report shows all errors involving references to objects that do not exist. This information is included in the other error reports, but this report shows the data in a columnar layout that is easier to understand. Especially if references involve controls.


Suggestions Category

Suggestions for improving your database are available in the reports in this category. Suggestions cover items that are less severe than errors. They are generally for simplifying maintenance, making your code more robust, and eliminating unnecessary objects. Examples include lists of unused objects and code, procedures without error handling, procedures that should be private, variable name conflicts, etc.

Under the System category, the "Total Access Analyzer List of Suggestions" report lists every type of suggestion the program makes.

•	The "By Suggestion Type, All" report includes all the suggestions detected sorted by suggestion type and object. The Suggestion Reports sorted by Suggestion Type include a description of each type of suggestion. To see a description of why something is a suggestion, use these reports.

•	There are also reports sorted by Object so you can see all the suggestions for each object. These reports are useful when implementing the suggestions object by object.

•	There are several other reports in this category listing only one specific type of suggestion. Each suggestion can include many items so the listings by type are helpful if you are implementing one type of suggestion across your objects. For instance, you may want to use the report for Unused Variables to go through all your objects to examine and eliminate them.


Performance Category

This category contains reports showing you how to improve the performance of your application. Performance tips are generated for your system, database, and specific objects and settings in your database.

Under the System category, the "Total Access Analyzer List of Performance Tips" report lists every performance issue the program detects.

•	The "By Performance Type, All" report includes all performance tips detected, and sorts by the performance type, and the object. Descriptions of each tip are provided.

•	The reports sorted by Object Type simplify the process of making modifications to your objects by grouping all the performance tips for an object together.


Database Category

The Database category contains reports about your database as a whole, including inventory reports listing all objects, and information on the database's Container and Document objects.

•	The "All Errors, Suggestions, and Performance Tips" report lists, by object, all the ways to improve them.

•	The Object Inventory reports are useful for giving you a list of every object in the database.


Tables Category

•	This category includes reports for table properties, attachment information, fields, field properties, and indexes. These are some of the highlights:

•	Use the "Table List" reports to show a list of tables along with their basic table information.

•	Use "Table Properties, Sorted By Property Name", to verify consistent values of a property across multiple tables.

•	"Table Fields, Sorted by Table Name" is one of the most valuable reports, showing each table, its fields, and each field's field type, size, and description.

•	"Table Fields with Different Types" shows identically named fields with inconsistent data type and/or size. Ideally, identically named fields have identical settings. This report lets you see the fields that should be modified or renamed. This report is for identically named fields. Use the "Table Fields, Sorted by Field Name" report to verify the spelling of your field names (e.g. "CustomerID" vs. "Customer ID" or "CustID", etc.).

•	The "Table Field Properties, Sorted By Property And Field Name" report allows you to compare even more field property values across your tables.

•	The "Table Dictionary" reports show comprehensive information of each table on a separate page. See all the table properties, fields, indexes, and field properties.


Queries Category

Information on the queries you selected for documentation is available here. Data includes query properties, SQL strings, fields used, fields returned (columns), and query joins.

•	"Query List" reports list the queries by name and type. There are reports with and without the query SQL string.

•	"Query Properties, Sorted by Query Name" makes it easy to see property settings across all queries—a good way to check for errors and inconsistencies.

•	"Query Tables, sorted by Query Name" shows all tables referenced by each query.

•	"Query Fields Referenced" shows each field referenced by each query.

•	The "Query Dictionary" report shows all query documentation including the fields used, fields returned, table joins, and parameters.


Forms Category and Reports Category

Documentation for forms and reports is very similar. This section describes both categories.

Information on each documented form or report is available, including object level properties, controls and their properties, sections, printer settings, and blueprints.

•	"List" reports show documented objects with basic information including whether the object has module code. There are reports with and without the record source.

•	"Subform" and "Subreport" reports list subforms and subreports in the documented objects.

•	"Controls" reports list each control on each object sorted by control type or control name.

•	ActiveX reports highlight ActiveX controls showing where they are used and their class types.

•	"Dictionary" reports provide detailed information on each form or report including its properties, sections, subforms or subreports, and controls. Each form or report is printed on a separate page. The "Dictionary with Control Properties" also prints out property settings for each control. (This report is extremely large—imagine the number of properties for every control on every form).

More:

Form and Report Blueprints


Form and Report Blueprints

If the "Generate Form Blueprints" option is selected in the Documentation Wizard (see Blueprints Options for more information), blueprint reports are available for each selected form and report. Blueprints are special reports that show a visual layout of each form. They are only available here and not from the Documentation Explorer. .

Sample Form Blueprint with Annotations

If the Annotate Images option was selected, each major control is annotated with a number in a box (labels, lines, boxes, etc. are not annotated). This allows easy reference between the layout and documentation for each control. Annotations also show which controls have code behind them:

•	Controls with italicized numbers contain code (or run macros)

•	Controls with non-italicized numbers in boxes have no code

This lets you easily identify controls that contain code. When you print blueprints, a form's blueprint appears on one page followed by a separate page listing the names of its controls. If you are only interested in a few forms, use the filter feature to limit the number of forms.

NOTE: If you are previewing blueprints, please be patient as the individual blueprints are displayed. Each blueprint takes a moment to appear. The screen may appear frozen, but it is still processing.


Macros Category

This category contains reports describing macros, including conditions, actions, names and comments.

•	"Macro List" reports show lists of macros, sorted by Macro name or Number of Lines.

•	The "Macro Dictionary" report prints all the macro lines including labels, conditions, expressions, actions, and command arguments.


Modules Category

Source code for all documented modules is available in the reports in this category. Modules include form, report, class and standard modules. For more information on how Total Access Analyzer documents and groups modules, see Modules Folder.

Standard Module Printout

The "Module Printout – Standard" report prints your module code in a very professional looking report. No modifications of the indentation of your code are made. The report shows line numbers, and applies fonts, greenbars, and other options. See Setting Module Printing Options for more information. At the end of each module is an index listing every procedure in the module and on which line it starts.

Bracketed Module Printout

The "Module Printout – Formatted with Brackets" report shows your code with standardized indentations and brackets around programming blocks.

No matter how the actual code exists in your modules (for example, none of the lines may have indentation or they use a non-standard indentation style), this report standardizes the code and makes it easy to read and understand. This is ideal in multiple developer environments where individual developers have different programming styles. Every loop is bracketed and subsequent lines are indented two spaces. A block is any VBA multiple line constants (Sub, Function, If, Do, While, Select Case, With, Type, etc.).

Sample Bracketed Module Code Printout

Exits from blocks of code (e.g. Exit Function, Exit For, Exit Do, etc.) are also drawn. This is particularly helpful if an Exit is buried within several levels of loops.


CmdBars Category

Command bar reports list command bars, their properties, the controls on each command bar, and each control's properties.


Relations Category

Relations reports contain information about the relationships in the database including properties, fields, join types and referential integrity settings. This category also includes the relationships window printout report.

The "Relationships" report prints a columnar text representation of all relationships in the database.

The "Relationships Window" reports print the layout of the relationships window as it appears in the Tools|Relationships menu item. These reports are different from the others because an external (non-Access) program processes them. The following section describes some key points about these reports.

Page Layout Option

For a complex relationship window, the report can span several pages. If so, the page number works like a spreadsheet with numbers going vertically, and letters horizontally.

Page 1A	Page 2A	Page 3A
Page 1B	Page 2B	Page 3B
Relationship Window: Tiled Page Numbering

If you do not want the relationship report to tile across multiple pages, choose the "Fit to Page" reports. This compresses a multi-page report to one page. Relationships that fit on one page are not affected.

Regular versus Summary Reports

The standard "Relationship Window" reports display the exact layout of your tables and queries in the relationship window.

The "Relationship Window Summary" reports display your relationship window, but in a summarized way. Here are the differences:

•	All fields with links are shown, even if they are hidden in the relationship window (tables with lots of fields are not always expanded fully so some link fields may not be visible in the standard view).

•	Tables are compact (unlinked fields are not shown). By removing unnecessary fields, a more compact view of all relationships is available. This eliminates the problem of showing many unlinked fields in a table. Since this usually shrinks the size of each table's height, the relationship window becomes smaller. Blank space is eliminated and the tables are moved up to provide a more compact view.

•	The object type is shown. This makes it easy to identify relationship objects as tables or queries.

•	The width of the box showing each table or query is not modified. If a table or field name is truncated, increase the width of its object in your Access relationship window and run the documentation again (or use Quick Doc).


Security Category

Information on users, groups, and object permissions is included in this category. Note that the permission settings shown in these reports are the DAO permission settings as documented by Microsoft Access. See Important Note on Permissions Documentation for important information on these settings.

•	Reports show lists of all defined users and groups.

•	"Container Permissions for Groups" shows all permission settings for DAO Container objects for each of the current workgroup's groups.

•	"Container Permissions for Users" shows all permissions setting for DAO container objects for each of the workgroup's users.

•	"Object Permissions for Groups" shows the permissions settings for all database objects for Groups.

•	"Object Permissions for Users" shows the permissions settings for all database objects for Users.


Object XRef Category

Object cross-reference information shows where tables, queries, forms, reports, and macros are used throughout your database. This category contains several reports for flexible sorting and grouping.

Not all object references can be documented. See Documentation Limitations for Total Access Analyzer's limitations.

•	The Query, Form Report, Macro and Command Bar References reports show where each of those objects is referenced.

•	Several reports show references by referenced Object Type.

•	The Hyperlinks report shows all Hyperlink references across your objects and the use of the FollowHyperlink command in your code.


Field XRef Category

Field cross-reference reports show where fields from tables and queries are used in other objects.  Various sort options are available. Field cross-reference information is in its own category with its own reports because of the large amount of field references that exist in a typical database.

•	The "Field References, Sorted by Table Name" shows where fields are used and is sorted by the referenced table and field names.

•	Several reports are available listing fields referenced by the calling object. There is a report for all objects that reference fields, and other reports for just Query, Form, and Report references.


Module XRef Category

The Module cross-reference category has the most extensive collection of reports. These reports are available if you selected "Generate Module XRef" (see Generate Module XRef). The data is based on detailed analysis of your general module code and the modules behind the selected forms and reports.

The available reports are similar to the items available on the Module XRef tab in the Documentation Explorer.

"Module Analysis Summary" reports show modules, number of lines, procedures, variables and various other summary statistics for each module. The total number of module lines is also provided.

•	"Procedure List" reports show a list of procedures defined in each module with information on their settings: procedure type, parameters, return type, etc. You can even include the comments of a procedure. The comments come from the comment block immediately before your procedure definition or if there is none before it, the comment block immediately after the definition. This gives you an excellent way to track each procedure's purpose.

•	"Procedure List, Sorted by Procedure Name" provides an alphabetical list of procedures and where they are defined. This is useful as a lookup when you know a procedure name, but not where it is defined.

•	"Procedures Called – Where Procs are Called From – All Procedures" is the procedure cross-reference showing where procedures are called from and the parameters used. This is ideal for reviewing procedure calls before making modifications to your code.

•	"Procedures Called, Non-Event Procedures Only" shows the procedure cross-reference for procedures excluding event procedures in forms and reports.

•	"Procedure Calls – What Each Procedure Calls" shows a list of procedures called by each procedure.

•	"Variable List" reports show a list of variables declared and their data types.

•	"Variable References" reports show where variables are referred to or assigned values (this can be very large).

•	"Variable Constants" reports shows all constants defined, their assigned values, and scope.

•	"Library Declarations" reports show all uses of the Declare keyword to access external DLL or EXE procedures.

•	"User Defined Type" reports list every user defined type and its elements. Reports also show where they are used.

•	"Class Module" reports show variables based on class modules and where they are defined.

•	There are also reports for Line Labels, Access/VBA function calls, DoCmd calls, and DefType statements.


Diagram Category

Diagrams are the highest level of analysis generated by Total Access Analyzer. Three diagrams are available: Application, Data, and Object. The diagrams were described in detail for the Documentation Explorer.

The diagram reports differ from the view of the diagrams in these ways:

•	All the branches are expanded.

•	The called object's module type and name is shown.

•	There is a [See Num] field for objects whose calls were drawn earlier in the diagram. The value in the column refers to the line number where the original drawing is located.

•	Lines are not drawn between root level objects.


System Category

The System category contains reports about Total Access Analyzer. These reports are very helpful for giving you a better idea of the features of the program:

•	The "Total Access Analyzer Report List" report shows every Total Access Analyzer report, along with a description of what each report contains.

•	Reports are available for all the Errors, Suggestions, and Performance Tips detected by Total Access Analyzer. Descriptions of each detected item and ways to fix your objects are included.

•	The "Total Access Analyzer Output Databases" report lists all the documentation databases. See Selecting Another Output Database to View for more information on the documentation output databases


Quick Documentation - Introduction
Introduction

There are times when you simply need a quick printout of an object's structure. For example, you may need to print the field and property list of some tables, or a module's code. For such simple tasks, Total Access Analyzer offers a Quick Doc feature as an alternative to the full documentation. The Quick Doc feature allows you to document basic information for:

•	The Current Database

•	Tables

•	Queries

•	Forms

•	Reports

•	Macros

•	Modules

•	Relationships

•	Command Bars

Since the point of Quick Doc is to be quick, the advanced information provided by the main Total Access Analyzer documentation operation is not available. This means that errors, suggestions, performance tips, cross reference, module analysis, and diagrams are not available through Quick Doc.

For a complete list of which Full Documentation reports are available in Quick Doc, print the list of Total Access Analyzer reports from the Main Menu form's [Print] button. The report is available under the System category.

Unlike full documentation, Quick Doc documentation is not saved. When you leave the Quick Doc Wizard, the results are discarded. Note that the documentation generated by Quick Doc is based on the current objects in your database. This may differ from previously generated results for the same database.

To start Quick Doc, press the Quick Doc button on the Main Menu form.


The Quick Doc Wizard

Quick Doc is a multi-page wizard.

More:

Page 1: Selecting a Category

Page 2: Selecting Objects

Page 3: Generating Documentation

Page 4: Selecting Reports

Finishing


Page 1: Selecting a Category

The first page of the Quick Doc Wizard displays a list of documentation categories. Click the category you are interested in. Note that you can only select one category at a time:

Quick Doc Wizard (Page 1)

Once you select a category, press the [Next] button to move to the next page.


Page 2: Selecting Objects

The second page shows a list of objects available in the category you selected. (If you selected the Database or Relationships category, a different screen appears since those categories do not have objects to select.)

Quick Doc Wizard (Page 2)

To select an object, double-click on it in the list box on the left, or select the object and press the [>] button. To deselect an object, double-click on it in the list box on the right, or press the [<] button. To select all objects in the list, press the [>>] button, and to deselect all objects, press the [<<] button.

Setting Options

Depending on the category specified on the first page of the Wizard, there may be additional options available. These options appear below the list of available objects on the second page of the form. The options are the same options as the full documentation options. See Control Properties for more information on the individual options. Your selection of Quick Doc options are not related to the options selected under [Document]. This lets you set your options independently on the Document and Quick Doc sides.

Once you select the objects and options you want, press the [Next] button. Total Access Analyzer displays a dialog asking you if you want to generate documentation. Select [Yes] to generate the documentation.


Page 3: Generating Documentation

Depending on the number of objects you have selected, and their complexity, this process can take anywhere from a few seconds to many minutes. As documentation is generated, a status form keeps you updated on the progress:

Quick Doc Wizard (Page 3)

Like Full Documentation, the screen may flash as objects are being documented. This is normal behavior. When the processing is complete, the next page appears.


Page 4: Selecting Reports

When the documentation is complete, the last page of the Quick Doc Wizard appears:

Quick Doc Wizard (Page 4)

This page lists the available reports. The list depends on the category you selected on the first page. For example, if you selected the Tables category, the list shows Table documentation reports.

This report selection screen behaves like the report selection screen for the main documentation. To select a report, click on the checkbox to the left of the report's name. Press [Preview] to preview it. You can select multiple reports and press the [Print] button to print all of them.

To change report options, press the [Options] button. See Changing Report Options for information on the report options available. The report options are the same for both Full Documentation and Quick Doc. That is, if you change the report layout here, it is also changed for your Full Documentation reports.


Quick Documentation - The Quick Doc Wizard - Finishing
Finishing

After you finish previewing and printing your reports, you have three choices:

•	Press the [Back] button once to select new objects to document.

•	Press the [Back] button twice to return the first page of the Quick Doc Wizard where you can specify a new category.

•	Press the [Cancel] button to close the Quick Doc Wizard and return to the Total Access Analyzer Main Menu form.


Un-Installing Total Access Analyzer

To remove Total Access Analyzer:

•	Run the Add/Remove Programs from your Windows Control Panel.

•	Select Total Access Analyzer from the list and remove it.

After a few moments, the Total Access Analyzer program files and its registry entries are deleted, and it no longer appears in your Access Tools|Add-in menu.

This, however, does not delete any documentation databases you created with Total Access Analyzer. Those files remain in the Output sub-directory below the directory where Total Access Analyzer was installed (unless you specifically directed them to be created in another directory). Use Windows Explorer to locate and delete the files. They should all end with the *.TDB file extension.


Total Access Analyzer Files

Total Access Analyzer installs several files to your hard disk or network directory. The following table lists the Total Access Analyzer files and their locations.

More:

Files Installed in the Installation Directory (specified when you install the program):

Files installed in the Windows\System directory:


Files Installed in the Installation Directory (specified when you install the program):

TA8DOC_C.MDE	The main program library database
TA8DOC_S.MDA	Shell database for data storage
TA8DOC_X.MDA	Backup shell database
TA8DOC_B.MDA	Form/Report blueprint database
TA8DOC_Q.MDA	Quick Doc database
TA8_REL.EXE	Relationships Window Printer
TA8DOC.HLP	Total Access Analyzer help file
LICENSE.TXT	Text file containing information on the license.
UNWISE.EXE	The uninstall program.
README.TXT	The readme file


Files installed in the Windows\System directory:

COMCTL32.OCX	The Microsoft Common Controls ActiveX control. This provides the TreeView and status meters used by Total Access Analyzer.
Please check the README file for any additional files that were added after this manual was written.