 |
Access
2000 Developer's Handbook
Volume I: Desktop Edition |
|
| |
Ken
Getz, Paul Litwin, Mike Gilbert |
| |
|
| 1 |
What's
New in Access 2000 |
|
| |
A
Brief Access History |
| |
Microsoft
Office Developer Features |
|
| 2 |
The
Access Event Model |
|
| |
So
Many Events, So Little Time |
| |
Hooking
In |
| |
Form
Events |
| |
Cancelable
Events |
| |
The
Sequence of Events |
|
| 3 |
Using
VBA Class Modules |
|
| |
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 |
|
| |
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 |
|
| |
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 |
|
| |
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 |
| |
The Supports
Method |
| |
Creating Recordset
Objects |
| |
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 |
|
| |
Controls and
Their Uses |
| |
Code Associated
with Forms: Class Modules |
| |
Working with
Groups of Controls |
| |
Some Standard
Control Properties |
| |
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 |
|
| |
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 |
|
| 9 |
Topics
in Report Design |
|
| |
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 |
|
| |
Introducing the
PrtDevMode Property |
| |
Modifying Printer
Settings |
| |
Controlling Print
Layout Information |
| |
Introducing the
PrtDevNames Property |
| |
Retrieving Printer
Capabilities |
| |
How Do I... |
|
| 11 |
Shared
Office Programmability |
|
| |
References are
Everything |
| |
The FileSearch
Object Model |
| |
Working with
Command Bars |
| |
The Office Assistant |
| |
Is There More? |
|
| 12 |
Using
Access As an Automation Client |
|
| |
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 |
|
| |
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 |
|
| |
Dealing with
Syntax Errors |
| |
Dealing with
Runtime Errors |
| |
Dealing with
Logic Errors, AKA Bugs! |
| |
Techniques and
Strategies for Debugging |
|
| 15 |
Application
Optimization |
|
| |
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 |
|
| |
Introducing Dynamic
Link Libraries |
| |
Calling DLL Procedures
from VBA |
| |
An Example: Reading
Data from the Registry |
| |
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 |
|
| |
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 |
|
| |
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 |
| B |
Startup
and Global Options |
| C |
Data
Access Objects |