Access 2002 Desktop Developer's Handbook
  Paul Litwin, Ken Getz, Mike Gunderloy
  (Outline subject to change)

Access 2002 Desktop Developer's Handbook focuses on issues facing every intermediate Access developer--working with data, classes, forms, reports, modules. This book assumes that you have some understanding of programming in VBA, and doesn't explain the beginning details of the language. For information on creating enterprise applications, including issues such as security, multi-user concerns, working with SQL Server, XML features in Access 2002, creating Data Access Pages, and working with Office Web Components, see Access 2002 Enterprise Developer's Handbook.

1 What's New in Access 2002
2 The Access Event Model
3 Using VBA Class Modules
4 Database Design
5 Access SQL
6 ActiveX Data Objects
7 Controlling Controls
8 Topics in Form Design and Usage
9 Topics in Report Design
10 Controlling Your Printer
11 Shared Office Programmability
12 Using Access as an Automation Client
13 Access as an Automation Server
14 Error Handling and Debugging
15 Application Optimization
16 Access DLLs and the Windows API
17 Harnessing Wizard Magic
18 Building Add-Ins
  Appendices
   
   
1 What's New in Access 2002 [top]
  A Brief Access History
  Microsoft Office Developer Features
2 The Access Event Model [top]
  So Many Events, So Little Time
  Hooking In
  Form Events
  Cancelable Events
  The Sequence of Events
3 Using VBA Class Modules [top]
  Why Use Class Modules?
  How Class Modules Work
  A Simple Example: A Text File Class
  Using Property Procedures
  A Simple Database Example
  Advanced Class Module Techniques
4 Database Design [top]
  The Relational Model
  Relational Database Design
  Normalizing a Set of Tables
  Integrity Rules
  A Practical Approach to Database Design
  Normalizing a Database with Existing Data
  Breaking the Rules: When to Denormalize
5 Access SQL [top]
  Where Can You Use Access SQL?
  Learning Access SQL
  The SELECT Statement
  Aggregating Data
  Union Queries
  Subqueries
  Parameterized SQL
  Using External Data Sources
  Updating Data in SQL
  Data Definition with SQL
  Creating SQL Pass-Through Queries
  Jet 4 ANSI SQL-92 Extensions
  Differences Between Access SQL, SQL-92, Jet SQL-92, and T-SQL
6 ActiveX Data Objects [top]
  ADO? What About DAO?
  Dueling Object Hierarchies
  ADO, UDA, and OLE DB
  Nuts and Bolts: Syntax Explained
  Using Default Collections
  Enumerating Objects in Collections
  Working with Properties
  Data Definition Using ADOX
  Working with Recordsets
  Meet the Cursors
  Creating a Recordset
  Creating Recordset Objects
  The Supports Method
  Moving Through a Recordset
  Sorting Recordsets
  Filtering Recordsets
  Refreshing Recordsets
  Editing Data in a Recordset Object
  Persisting Recordsets
  Using Recordsets in Place of Arrays
  Using Command Objects for Bulk Operations
  Schema Recordsets
  Using the CurrentProject and CurrentData Collections
  A Case Study: Using the Collections
7 Controlling Controls [top]
  Controls and Their Uses
  Code Associated with Forms: Class Modules
  Working with Groups of Controls
  Some Standard Control Properties
  Using the Dirty and Undo Events
  Controlling Text Layout
  Using Labels
  Using Text Boxes
  Using Two-State Controls (The Yes/No Crowd)
  Using Option Groups--Controls Inside Controls
  Using Controls' Controls Collection
  Using List and Combo Boxes
  How and When to Use Subforms
  Using Command Buttons
  The Tab Control
  Using the Tab Control as a Container
  Using Default Control Properties to Your Advantage
  Creating Controls Programmatically
  What Are These Controls, Anyway?
8 Topics in Form Design and Usage [top]
  New Form Views in Access 2002
  Introduction to Class Modules in Forms
  Controlling Closing
  Does a Specific Form Exist?
  Is a Specific Form Loaded?
  Creating Pop-Up Forms
  Using Pop-Up Tools
  Creating User-Defined Properties
  Using Form Procedures as Methods
  Filtering Data
  Ordering Your Rows
  Working with Forms' Data
  Using the Recordset and RecordsetClone Properties
  Conditional Formatting
  Form-Level Error Handling
  Controlling the Pesky Users
  Displaying Multiple Instances of Forms
  Using Subforms In Your Application
  Windows Handles, Classes, Access Forms, and MDI
  Manipulating Forms (the FormInfo Class)
  Automatically Resizing Forms
  Programming New Form Views
9 Topics in Report Design [top]
  Reports vs. Forms
  Filtering Your Reports
  Controlling Sorting and Grouping
  Section Design-Time Properties
  Events of Reports and Their Sections
  Report Events
  Section Runtime Properties
  Examples Using Report and Section Events and Properties
  Printing Multiple Labels
  Printing Mailing Labels Starting at a Specific Location
  Inserting Blank Lines
  Handling Odd and Even Pages
  Controlling the Starting Page Number
  Numbering Items on a Report
  Some Simple Sample Reports
  The Sales Report
  The Phone Book
  Companies, Contacts, and Hardware
  Altering Your Report's Layout Programmatically
  Creating a Report Based on a Crosstab Query
  Distributing Access Reports
10 Controlling Your Printer [top]
  Working with Print Destinations
  Modifying Printer Settings
  Modifying Layout Settings
  Retrieving Printer Capabilities
  How Do I...
11 Shared Office Programmability [top]
  References are Everything
  The FileSearch Object Model
  Working with Command Bars
  The Office Assistant
  Is There More?
12 Using Access as an Automation Client [top]

  Automation Basics
  Creating Object Instances
  Controlling Other Applications
  Creating Automation Solutions with Microsoft Office
  Example: Word as a Report Writer
  Example: Outlook Time Reporting
  Example: Creating a PowerPoint Presentation
  Example: Populating an Excel Spreadsheet
  Using ActiveX Controls
  Tapping into Events Using WithEvents
13 Access as an Automation Server [top]
  Working with Access as an Automation Server
  A Class for Access Automation
  Running Access Reports using Automation
  Calling User-Defined Functions from an Automation Client
  Wiring Automation-Friendly Applications
14 Error Handling and Debugging [top]
  Dealing with Syntax Errors
  Dealing with Runtime Errors
  Dealing with Logic Errors, AKA Bugs!
  Techniques and Strategies for Debugging
15 Application Optimization [top]
  Tuning Your Application's Performance
  Hardware and Windows Issues
  Understanding How the Jet Query Engine Works
  Configuring the Jet Engine
  Microsoft's Unsupported Jet Optimization Tools
  Speeding Up Queries and Recordsets
  Speeding Up Forms
  Speeding Up Reports
  Optimizing VBA's Use of Modules and Compilation
  Speeding Up VBA: Testing Hypotheses
  VBA Optimization Tips
16 Accessing DLLs and the Windows API [top]
  Introducing Dynamic Link Libraries
  Calling DLL Procedures from VBA
  Using Type Libraries with DLL Functions
  Creating DLL Function Classes
  How to Construct a Declare Statement
  More Advanced Details of Calling DLLs
  Converting API Calls from 16-bit Windows
17 Harnessing Wizard Magic [top]
  Using the Procedures
  File-Handling Functions
  Using Windows' Dialog Boxes (File Open/Save, Selecting Colors, Selecting Fonts, Browse for Folders)
  Reading and Writing Registry Values
  Font-Handling Functions
  Object-Handling Functions
  Miscellaneous Functions (National Language Info, Version Info, Toolbar Bitmaps)
18 Building Add-Ins [top]
  Libraries and Wizards and Builders, Oh My!
  Creating Library Databases
  Building Your Own Builders
  Developing Custom Wizards
  Control Wizards: A Hybrid
  Distributing and Installing Add-Ins
  Advanced Add-In Topics
  COM Add-Ins
A The Reddick Naming Conventions, Version 6 [top]
B Access 2000 Printing Classes
C Data Access Objects