Table of Contents
(NOTE: Each Chapter concludes with Summary.)
I. THE ROOT OF POWER PROGRAMMNG.
1. Macros Are for Weenies; Code
Is Cool!
Understanding Where Macros End and Code Begins.
Looking at Macro-to-Code Changes. Converting Existing Macros to VBA Code.
2. Coding in Access 2000 with VBA.
Getting Started with Programming. Getting
Started with VBA. Programming with Objects. Using Properties and Methods.
Using Collections. Customizing a Form. Coding Class Modules.
3. Making the Choice: MDB or ADP, DAO or ADO.
Using Microsoft Database Versus Access Database
Project. Using Data Access Objects Versus ActiveX Data Objects.
4. Looking at the Access Collections.
Creating Custom Collections. Comparing Custom
Collections to Arrays. Accessing the Access Object Model. Programming Multiple
Copies of the Same Form.
5. Working with Data Access Objects.
Understanding Data Access Objects. Creating
a Database with DAO. Increasing Speed with Transactions. Using Custom Properties.
6. Introducing ActiveX Data Objects.
Looking at the Object Models. Referencing
the Type Libraries. Opening a Connection to a Database. Creating a Recordset
with ADO. Working with Queries Using ADO. Working with Tables Using ADO.
7. Handling Your Errors in Access with VBA.
Access Error Messaging. Different Ways of
Using Error Handling. Examining Access's Runtime Error Handling. Working
with the Err and Error Objects. Working with the Errors Collection. Creating
User-Defined Errors. Tracking Errors by Using a Custom Error Log. Creating
a Centralized Error-Handling Routine. A Last Look at Error-Handling Issues.
II. Manipulating and Presenting Data.
8. Using Queries to Get the Most
Out of Your Data.
Understanding Where Queries Are Used in Access.
Using Select Queries: Power in the Query Design Grid. Working with Action
Queries: Foundations for Power. Using Advanced Query Operations. Adding
More Power with VBA. Working with Queries to Feed Reports and Forms. Solving
Problems with Queries. Examining the Architecture of the Query Resolution
Process. Discovering Jet Optimization Methods. Understanding Optimization
Techniques. Using Unconventional Optimization Techniques. Using the Analyzer
Wizards.
9. Creating Powerful Forms.
Increasing the Performance of Your Forms.
Using Access 2000's New Form Features. Taking Advantage of Other Form Features.
Reusing Forms to Perform Standard Tasks with the OpenArgs and Tag Properties.
Increasing Tabbed Form Performance.
10. Expanding the Power of Your Forms with Controls.
Setting Up a Field's Lookup Properties for
Use on Forms. Tapping into the Power of Combo Boxes. Working with the Native
Access Tab Control. Morphing Access Controls. Programming for Power with
Multiselect ListBox Controls. Using the Subform/Subreport Wizard for Relief.
Giving Spreadsheet-Type Cursor Movements to Controls. Manipulating Controls
Through Code.
11. Creating Powerful Reports.
Using the Same Report for Summary, Detail,
and Summary/Detail Reports. Using Query by Form to Create Dynamic Groupings
for the Same Report. The Elusive Feature: Creating Snaking Reports. Using
Dynamic Columns to Create a Report Off a Crosstab Query. Choosing Multiple
Topics to Print by Using the MultiSelect List Box. Creating a Wizard-Like
Interface for Selecting Group-By Items. Formatting Reports Dynamically.
12. Working with Data Pages.
Why Data Access Pages? Saving Time with the
Data Access Page Wizards. Creating and Enhancing Simple Data Access Pages.
Grouping Data Access Pages: Reports for the Web. Finding Additional Resources.
III. EXTENDING ACCESS WITH INTEROPERABILITY.
13. Driving Office Applications
with Automation and DDE.
Understanding Automation. Examining the Office
Products' Object Models. Using Automation. Running Other Applications from
Access with Automation. Using Automation to Drive Access from Microsoft
Project. Using Automation to Drive Outlook from Access. Driving Other Applications
with DDE.
14. Programming for Power with ActiveX Controls.
Understanding the ActiveX Windows Common
Controls. Taking a Closer Look at the ImageList Control. Emulating the Windows
95 Explorer with the ListView Control. Displaying a Task's Progress with
the ProgressBar Control. Sizing Text Boxes at Runtime with the Slider Control.
Telling It Like It Is with the Microsoft Rich Textbox Control. Creating
Status Bars for Individual Forms with the StatusBar Control. Docking Toolbars
on Forms Using the ToolBar Control. Viewing Data File Manager Style with
the TreeView Control.
15. Using API Calls to Extend the Power of Access.
Understanding Dynamic Link Libraries. Examining
the Syntax for API Calls. Finding API Declarations. Viewing the Possible
API Calls. Considering Some Issues When Using API Calls. Looking at Some
Examples of API Calls. Displaying Pertinent Folders from Within Your Application.
Using the Open File Dialog API Call.
16. Extending Your VBA Library Power with Class Modules and Collections.
Looking at the First Scenario. Managing Multiple
Instances of the Same Form.
17. Creating Your Own Wizards and Add-ins.
Understanding Access Wizards, Builders, and
Add-Ins. Looking at the Wizards and Add-In Registry Entries. Creating Your
Own Add-Ins. Using Access Code Libraries.
18. Manipulating the Registry with VBA.
Looking at the History of the Window's Registry.
Using VBA's Registry Commands. Performing Tasks with the Registry API Calls.
19. Using Access with the Internet.
Looking at Access's Hyperlink Features. Looking
at Access's Hyperlink Options. Importing and Exporting Access Objects to
HTML Documents the Easy Way. Publishing to Other Web File Formats.
IV. ADDING THE PROFESSIONAL LOOK AND DISTRIBUTING APPLICATIONS.
20. Programming Office Command Bars
and the Office Assistant.
Using Command Bars. Working with Command
Bars Through VBA. Working with the Office Assistant. Looking at the FileSearch
Object.
21. Securing Your Application.
Understanding the Purpose of Securing Your
Application. Understanding Security in Access 2000. Looking at the
Security User Interface. Using Tools to Make Life with Access Security Easier.
Avoiding Common Pitfalls Found in Access Security. Managing Security Through
Code. Using the Secured Sample Database: Chap21s.mdb.
V. MANAGING DATABASES.
22. Handling Multiuser Situations.
Looking at Multiuser Terminology. Understanding
Access Multiuser Handling. One or Two Database Containers: Knowing Where
to Put the Pieces. Looking at the Built-In Locking Modes. Working in VBA
with Unbound Forms. Coding for Multiuser Error Handling. Getting a List
of Logged-In Users with ADO.
23. Welcome to the World of Database Replication.
Understanding Database Replication Concepts.
Understanding the Jet Replication Tools. Converting a Database to a Replica.
Synchronizing Replicas. Understanding Replica Set Topologies. Automating
Star and Hub Synchronization. Distributing Replicable Applications. Replicating
Back-End and Front-End Applications. Dealing with Replication Conflicts.
Understanding Replication Synchronizers. Upgrading Replica Sets from Access
97 to Access 2000. Securing Replicated Applications. Using MDE Files
with Replicated Databases. Creating Successful Replication Applications.
24. Moving Workgroup Applications to Client/Server.
Understanding Client/Server. Factoring for
Migration to Client/Server. Planning for Client/Server. Knowing What to
Watch for in Application Development. Converting Existing Applications.
Distributing a Client/Server Solution. Keeping Certain Issues in Mind with
Access and SQL Server.
25. Developing SQL Server Projects Using ADPs.
Project File Architecture. Working with Projects.
Building a Client/Server Application. Working with Views. Working with Stored
Procedures.
VI. ADDING FINISHING TOUCHES.
26. Startup Checking System Routines
Using DAO.
Performing Startup System Checks. Using Custom
Database Properties. Notifying and Logging Users Out of an Application.
Testing the Connections of Linked Tables at Startup. Linking and Unlinking
Tables Through VBA. Testing and Repairing Corrupted Jet Back-End Databases.
Checking and Notifying Users of a New Version.
27. Startup Checking System Routines Using ADO.
Performing Startup System Checks. Setting
and Retrieving System Settings with ADO. Testing the Connections of Linked
Tables at Startup. Linking Tables Through VBA and ADO. Testing and Repairing
Corrupted Jet Back-End Databases. Replicating Code Tables Using ADO.
28. Creating Maintenance Routines.
Creating an Export Dialog to Export an Application's
Tables. Compacting and Repairing the Back End on Demand. Creating a Generic
Code Table Editor. Replicating Tables from Back End to Front End for Better
Performance.
VII. APPENDIXES.
Appendix A. Debugging Code in Access
Setting the Correct Module Options for Maximum
Debugging Power. Taking Advantage of the Immediate Window. Stopping Program
Execution. Debugging One Step at a Time. Viewing the Order of Procedure
Calls. Watching Expressions During Program Execution. Controlling Code with
Conditional Compilation Commands.
Appendix B. Getting Started with ActiveX Controls.
Working with ActiveX Controls. Counting the
Days with the Calendar Control. Using a Standard Interface with the Common
Dialog ActiveX Control.
Appendix C. Access 2000 and Jet 4 Errors.
Appendix D. Leszynski Naming Conventions
for Microsoft Access.
Naming Conventions: A Primer. Access Object
Types. Structuring Object Names. Creating Database Object Base Names. Naming
Conventions for Database Objects. Creating VBA Object Base Names. Naming
Conventions for VBA Objects. Creating Your Own Tags. VBA Coding Conventions.
Standardized Abbreviations. Standardized Terminology. Additional Information
About LNC.