Level 1
- 1.0 Access as a Development Tool
- 1.1 Types of Applications You Can Develop in Access
- 1.2 Access as a Scalable Product
- 1.3 What Exactly is a Database?
- 1.4 Getting to Know the Database Objects
- 1.5 Object Naming Conventions
- 1.6 Hardware Requirements
- 1.7 How Do I Get Started Developing an Access Application?
- 2.0 What Every Developer Needs to Know About Tables
- 2.1 Building a New Table
- 2.2 Selecting the Appropriate Field Type for Your Data
- 2.3 Working with Field Properties
- 2.4 The All-Important Primary Key
- 2.5 Working with the Lookup Feature
- 2.6 Working with Table Properties
- 2.7 Using Indexes to Improve Performance
Level 2
- 1.0 Relationships: Your Key to Data Integrity
- 1.1 Why Relationships are Important
- 1.2 Introduction to Relational Database Design
- 1.3 Examining the Types of Relationships
- 1.4 Establishing Relationships
- 1.5 Establishing Referential Integrity
- 1.6 Looking at the Benefits of Relationships
- 1.7 Examining Indexes and Relationships
- 1.8 What Every Developer Needs to Know About Query Basics
- 1.9 Why Queries are Important
- 1.10 What is a Query and When Should You Use One?
- 1.11 Everything You Need to Know About Query Basics
- 1.12 Ordering Your Query Result
- 1.13 Refining Your Query with Criteria
- 1.14 Working with Dates in Criteria
- 1.15 Understanding How Query Results Can be Updated
- 1.16 Building Queries Based on Multiple Tables
- 1.17 Creating Calculated Fields
- 1.18 Getting Help from the Expression Builder
- 1.19 Summarizing Data with Totals Queries
- 1.20 Excluding Fields from the Output
- 1.21 Nulls and Query Results
- 1.22 Refining Your Queries with Field, Field List, and Query
Properties
- 1.23 Building Parameter Queries: When You Don’t Know the
Criteria at Design Time
Level 3
- 1.0 What Every Developer Needs to Know About Forms
- 1.1 Why This Section is Important
- 1.2 Uses of Forms
- 1.3 Anatomy of a Form
- 1.4 Creating a New Form
- 1.5 Working with the Form Design Window
- 1.6 Selecting the Correct Control for the Job
- 1.7 Control Morphing
- 1.8 Conditional Formatting
- 1.9 What Form Properties Are Available and Why Use Them?
- 1.10 What Control Properties Are Available and Why Use Them?
- 2.0 What Every Developer Needs to Know About Forms –
Beyond the Basics
- 2.1 Why This Section is Important
- 2.2 Bound, Unbound, and Calculated Controls
- 2.3 Using Expressions to Enhance Your Forms
- 2.4 The Command Button Wizards: Programming Without Typing
- 2.5 Building Forms Based on More Than One Table
- 2.6 Basing Forms on Queries: The Why and How
- 2.7 Access Forms and the Internet
Level 4
- 1.1 What Every Developer Needs to Know About Reports
- 1.2 Why This Section is Important
- 1.3 Types of Reports Available
- 1.4 Anatomy of a Report
- 1.5 Creating a New Report
- 1.6 Working with the Report Design Window
- 1.7 Selecting the Correct Control for the Job
- 1.8 What Report Properties are Available and Why Use Them
- 1.9 What Control Properties are Available and Why Use Them
- 2.0 What Every Developer Needs to Know About Reports –
Beyond the Basics
- 2.1 Why This Section is Important
- 2.2 Inserting Page Breaks
- 2.3 Unbound, Bound, and Calculated Controls
- 2.4 Using Expressions to Enhance Your Reports
- 2.5 Building Reports Based on More Than One Table
- 2.6 Working with Sorting and Grouping
- 2.7 Basing Reports on Stored Queries
- 2.8 Access Reports and the Internet
Level 5
- 1.0 VBA: AN INTRODUCTION
- 1.1 Why this Section is Important
- 1.2 VBA Explained
- 1.3 What Are Access Class Modules, Standard Modules, Form
Modules, and Report Modules?
- 1.4 Working with Variables
- 1.5 Adding Comments to Your Code
- 1.6 Using the Line Continuation Character
- 1.7 Using the VBA Control Structures
- 1.8 Passing Parameters and Returning Values
- 1.9 Executing Procedures from the Module Window
- 1.10 The DoCmd Object: Performing Macro Actions
- 1.11 Working with Built-In Functions
- 1.12 Working with Constants
- 1.13 Tools for Working in the Visual Basic Editor
- 1.14 Customizing the VBE
- 2.0 Objects, Properties, Methods, and Events
- 2.1 Why This Section is Important
- 2.2 Understanding Objects, Properties, Events, and Methods
- 2.3 Using the Object Browser to Learn About Access’s Objects
- 2.4 Referring to Objects
- 2.5 Properties and Methods Made Easy
- 2.6 Declaring and Assigning Object Variables
- 2.7 Understanding the Differences Between Objects and
Collections
- 2.8 Passing Objects to Subroutines and Functions
- 2.9 Determining the Type of a Control
- 3.0 Special Properties That Refer to Objects
- 3.1 Understanding Access’s Object Model
Level 6
- 1.0 Advanced Form Techniques
- 1.1 Why This Section is Important
- 1.2 What are the Form Events
- 1.3 What are the Section and Control Events
- 1.4 What Types of Forms Can I Create
- 1.5 Using Built-in Dialogs
- 1.6 Adding Menus, Toolbars, and Shortcut Menus
- 1.7 Taking Advantage of Filtering Techniques
- 1.8 Including Objects from Other Applications
- 1.9 Switching a Form’s Record Source
- 1.10 Power Combo and List Box Techniques
- 1.11 Power Subform Techniques
- 1.12 Synchronizing a Form with Its Underlying Recordset
- 1.13 Creating Custom Properties and Methods
Level 7
- 1.0 Advanced Report Techniques
- 1.1 Why This Section Is Important
- 1.2 Events Available for Reports and When to Use Them
- 1.3 Order of Events for Reports
- 1.4 Events Available for Report Sections and When to Use Them
- 1.5 Programmatically Manipulating Report Sections
- 1.6 Special Report Properties
- 1.7 Controlling the Printer
- 1.8 Practical Examples of Report Events and Properties
Level 8
- 1.1 Advanced Query Techniques
- 1.2 Why This Section is Important
- 1.3 Action Queries
- 1.4 Special Query Properties
- 1.5 Optimizing Queries
- 1.6 Crosstab Queries
- 1.7 Outer Joins
- 1.8 Self Joins
- 1.9 Understanding SQL
- 1.10 Union Queries
- 1.11 Pass-through Queries
- 1.12 The Propagation of Nulls and Query Results
- 1.13 Subqueries
- 1.14 Using SQL to Update Data
- 1.15 Using SQL for Data Definition
- 1.16 Using the Result of a Function as the Criteria for a Query
- 1.17 Passing Parameter Query Values from a Form
- 1.18 Jet 4.0 ANSI-92 Extensions
- 2.0 Advanced VBA Techniques
- 2.1 Why This Section is Important
- 2.2 What are User-defined Types, and Why Would You Use Them
- 2.3 Working with Constants
- 2.4 Working with Arrays
- 2.5 Advanced Function Techniques
Level 9
- 1.0 Exploiting the Power of Class Modules
- 1.1 Exploring the Benefits of Class Modules
- 1.2 Object Orientation – An Introduction
- 1.3 Creating and Using a Class Module
- 1.4 Creating Multiple Class Instances
- 1.5 The Initialize and Terminate Events
- 1.6 Working with Enumerated Types
- 1.7 Building Hierarchies of Classes
- 1.8 Adding a Parent Property to Classes
- 1.9 The Implements Keyword
- 1.10 Working with Custom Collections
- 1.11 Adding Your Own Events
- 1.12 Practical Examples: Class Modules
- 1.13 Summary
- 2.0 What Are ActiveX Data Objects and Data Access Objects, and
Why Are They Important?
- 2.1 Why This Section Is Important
- 2.2 Using ActiveX Data Objects Versus Data Access Objects
- 2.3 Examining the ActiveX Data Object Model
- 2.4 Understanding ADO Recordset Types
- 2.5 Working with ADO Recordset Properties and Methods
- 2.6 Modifying Table Data Using ADO Code
- 2.7 Creating and Modifying Database Objects Using ADO Code
Level 10
- 1.0 Debugging: Your Key to Successful Development
- 1.1 Why This Section Is Important
- 1.2 Avoiding Bugs
- 1.3 Harnessing the Power of the Immediate Window
- 1.4 Invoking the Debugger
- 1.5 Using Breakpoints to Troubleshoot
- 1.6 Stepping Through Code
- 1.7 Setting the Next Statement to Execute
- 1.8 Using the Calls Window
- 1.9 Working with the Locals Window
- 1.10 Working with Watch Expressions
- 1.11 Continuing Execution After a Runtime Error
- 1.12 Looking At Gotchas with the Immediate Window
- 1.13 Using Assertions
- 1.14 Debugging Tips
- 2.0 Error Handling: Preparing for the Inevitable
- 2.1 Why This Section Is Important
- 2.2 Implementing Error Handling
- 2.3 Using On Error Statements
- 2.4 Using Resume Statements
- 2.5 Clearing an Error
- 2.6 Examining the Cascading Error Effect
- 2.7 Using the Err Object
- 2.8 Raising an Error
- 2.9 Using the Errors Collection
- 2.10 Creating a Generic Error Handler
- 2.11 Preventing Your Own Error Handling from Being Invoked
- 2.12 Creating a Call Stack
- 2.13 Building a Custom Error Handler Class
- 2.14 Working with Error Events
- 2.15 Creating a List of Error Codes and Description
Level 11
- 1.0 OPTIMIZING YOUR APPLICATION
- 1.1 Why This Section Is Important
- 1.2 Introducing Optimization
- 1.3 Modifying Hardware and Software Configurations
- 1.4 What Jet 3.5 Did to Improve Performance
- 1.5 Understanding What Jet 4.0 Does to Improve Performance
- 1.6 Letting the Performance Analyzer Determine Problem Areas
- 1.7 Designing Tables to Optimize Performance
- 1.8 Designing Queries to Optimize Performance
- 1.9 Making Coding Changes to Improve Performance
- 1.10 Designing Forms and Reports to Improve Performance
- 2.0 A STRATEGY FOR DEVELOPING ACCESS APPLICATIONS
- 2.1 Why This Section Is Important
- 2.2 Splitting Databases into Tables and Other Objects
- 2.3 Basing a Form or Report on a Tab, Query, or SQL Statement
- 2.4 Understanding the Access Runtime Engine
- 2.5 Using an EXE versus Access Database: What It Means to You
- 2.6 Understanding the Importance of Securing Your Database
- 2.7 Using Access as a Front End
- 3.0 USING EXTERNAL DATA
- 3.1 Why This Section Is Important
- 3.2 Importing, Linking, and Opening Files: When and Why
- 3.3 Importing External Data
- 3.4 Creating a Link to External Data
- 3.5 Opening an External Table
- 3.6 Understanding Windows Registry Settings
- 3.7 Using the Jet OLEDB:Link Provider String
- 3.8 Working with Passwords
- 3.9 Refreshing and Removing Links
- 3.10 Working with SharePoint Team Services
- 3.11 Looking at Special Considerations
- 3.12 Troubleshooting
- 3.13 Looking at Performance Considerations and Links
- 3.14 Working with HTML Documents
- 4.0 Developing Multiuser and Enterprise Applications
- 4.1 Why This Section is Important
- 4.2 Options Available with MultiUser Applications
- 4.3 Access’s Locking Mechanisms
- 4.4 Client/Server Applications
- 4.5 Knowing When to Switch to the Client/Server Model
- 4.6 Client/Server Terminology
Level 12
- 1.0 USING ACTIVEX CONTROLS
- 1.1 Why this Section is Important
- 1.2 Incorporating ActiveX Controls in Access 2002
- 1.3 Setting Properties of an ActiveX Control at Design Time
- 1.4 Coding Events of an ActiveX Control
- 1.5 Using the Calendar Control
- 1.6 Using the UpDown Control
- 1.7 Using the StatusBar Control
- 1.8 Using the Common Dialog Control
- 1.9 Using the Rich Textbox Control
- 1.10 Using the TabStrip Control
- 1.11 Using the ImageList Control
- 1.12 Licensing and Distribution Issues
- 2.0 AUTOMATION: COMMUNICATING WITH OTHER APPLICATIONS
- 2.1 Why This Section Is Important
- 2.2 Defining Some Automation Terms
- 2.3 Declaring an Object Variable to Reference Your Application
- 2.4 Creating an Automation Object
- 2.5 Manipulating an Automation Object
- 2.6 Early Binding Versus Late Binding
- 2.7 Controlling Excel from Access
- 2.8 Closing an Excel Automation Object
- 2.9 Creating a Graph from Access
- 2.10 Controlling Word from Access
- 2.11 Controlling PowerPoint from Access
- 2.12 Automating Outlook from Access
- 2.13 Controlling Access from Other Applications
Level 13
- 1.0 EXPLOITING THE POWER OF THE WINDOWS API
- 1.1 Why This Section Is Important
- 1.2 Declaring an External Function to the Compiler
- 1.3 Working with Constants and Types
- 1.4 Calling DLL Functions: Important Issues
- 1.5 Using API Functions
- 2.0 PUBLISHING DATA ON THE WEB
- 2.1 Why This Section is Important
- 2.2 Saving Database Objects as HTML
- 2.3 Linking to HTML files
- 2.4 Importing HTML Files
- 2.5 Creating Data Access Pages
- 2.6 Modifying Data Access Page Properties
- 2.7 Customizing the Record Navigation Control
- 2.8 Grouping Records on a Data Access Page
- 2.9 Creating Scripts Behind the Events of Objects on a Data
Access Page
Level 14
- 1.0 DATABASE SECURITY MADE EASY
- 1.1 Why This Section Is Important
- 1.2 Implementing Share-Level Security: Establishing a Database
Password
- 1.3 Encrypting a Database
- 1.4 Establishing User-Level Security
- 1.5 Securing VBA Code with a Password
- 1.6 Providing an Additional Level of Security: Creating an MDE
- 1.7 Securing a Database Without Requiring Users to Log On
- 1.8 Looking at Special Issues
- 2.0 ADVANCED SECURITY TECHNIQUES
- 2.1 Why This Section Is Important
- 2.2 Maintaining Groups Using Code
- 2.3 Using Code to Maintain Users
- 2.4 Listing All Groups and Users
- 2.5 Working with Passwords
- 2.6 Assigning and Revoking Permissions to Objects Using Code
- 2.7 Encrypting a Database Using Code
- 2.8 Accomplishing Field-Level Security Using Queries
- 2.9 Prohibiting Users and Groups from Creating Objects
- 2.10 Accomplishing Prohibited Tasks by Logging On as a Different
User
- 2.11 Securing Client/Server Applications
- 2.12 Security and Replication
- 2.13 Implementing Security with SQL
- 2.14 DAO and Security
- 2.15 Choosing Between ADOX, SQL, and DAO
Level 15
- 1.0 DOCUMENTING YOUR APPLICATION
- 1.1 Why This Section Is Important
- 1.2 Preparing Your Application to Be Self-Documenting
- 1.3 Using the Database Documenter
- 1.4 Object Dependencies
- 1.5 Writing Code to Create Your Own Documentation
- 2.0 MAINTAINING YOUR APPLICATION
- 2.1 Why This Section Is Important
- 2.2 Compacting Your Database
- 2.3 Backing Up a Database
- 2.4 Converting an Access Database
- 2.5 Detecting Broken References
- 3.0 DISTRIBUTING YOUR APPLICATION
- 3.1 Why This Section Is Important
- 3.2 The Packaging Wizard
- 3.3 Distributing with a Full Copy of Access
- 3.4 Differences Between the Full and Runtime Versions
- 3.5 Preparing Your Application for Runtime Distribution
- 3.6 Additional Issues