| |
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 |