You are previewing Access 2007 Programming by Example with VBA, XML, and ASP.
O'Reilly logo
Access 2007 Programming by Example with VBA, XML, and ASP

Book Description

Access 2007 Programming by Example with VBA, XML, and ASP shows non-programmers how Access databases can be created, managed, and customized with Visual Basic for Applications (VBA) — a powerful programming language built into Access. Hundreds of hands-on examples and projects throughout the book show users how to take charge of their Access databases with programming. Learn how to Write and debug your programming code with the Visual Basic Editor; access and manipulate databases with Data Access Objects (DAO) and ActiveX Data Objects (ADO); use the Data Definition Language (DDL) to enforce data integrity and manage database security; modify the behavior of forms, reports, and controls by writing event procedures; publish dynamic Access data to the web using Active Server Pages (ASP) and Extensible Markup Language (XML); and work with the new features for tables, forms, reports, macros, and templates that are available in the Access 2007 user interface.

Table of Contents

  1. Contents
  2. Acknowledgments
  3. Introduction
    1. Prerequisites
    2. How This Book Is Organized
    3. How to Work with This Book
    4. Source Files
  4. PART I Introduction to Access 2007 VBA Programming
    1. Chapter 1 Writing Procedures in Modules
      1. Procedure Types
      2. Module Types
        1. Standard Modules
          1. Writing Procedures in a Standard Module
            1. Hands-On 1-1: Working in a Standard Module
          2. Executing Your Procedures and Functions
            1. Hands-On 1-2: Running Procedures and Functions
        2. Class Modules
      3. Events, Event Properties, and Event Procedures
        1. Why Use Events?
        2. Walking Through an Event Procedure
          1. Hands-On 1-3: Writing an Event Procedure
        3. Compiling Your Procedures
        4. Placing a Database in a Trusted Location
          1. Hands-On 1-4: Placing an Access Database in a Trusted Location
      4. Chapter Summary
    2. Chapter 2 The Visual Basic Editor (VBE)
      1. Understanding the Project Explorer Window
      2. Understanding the Properties Window
        1. Hands-On 2-1: Using Properties Window to View Control Properties
      3. Understanding the Code Window
      4. Other Windows in the VBE
      5. On-the-Fly Syntax and Programming Assistance
        1. List Properties/Methods
        2. Parameter Info
        3. List Constants
        4. Quick Info
        5. Complete Word
        6. Indent/Outdent
          1. Hands-On 2-2: Using the Indent/Outdent Feature
        7. Comment Block/Uncomment Block
      6. Using the Object Browser
        1. Hands-On 2-3: Using the Object Browser
      7. Using the VBA Object Library
        1. Hands-On 2-4: Using Built-in VBA Functions
      8. Using the Immediate Window
        1. Hands-On 2-5: Experiments in the Immediate Window
        2. Hands-On 2-6: Asking Questions in the Immediate Window
      9. Chapter Summary
    3. Chapter 3 Variables, Data Types, and Constants
      1. What Is a Variable?
      2. What Are Data Types?
      3. Creating Variables
      4. Declaring Variables
        1. Hands-On 3-1: Using Variables
      5. Specifying the Data Type of a Variable
        1. Hands-On 3-2: Understanding the Data Type of a Variable
      6. Using Type Declaration Characters
        1. Hands-On 3-3: Using Type Declaration Characters in Variable Names
      7. Assigning Values to Variables
        1. Hands-On 3-4: Assigning Values to Variables
      8. Forcing Declaration of Variables
        1. Hands-On 3-5: Forcing Declaration of Variables
      9. Understanding the Scope and Lifetime of Variables
        1. Procedure-Level (Local) Variables
        2. Module-Level Variables
          1. Hands-On 3-6: Understanding Module-Level Variables
        3. Public (Global) Variables
      10. Understanding and Using Temporary Variables
        1. Creating a Temporary Variable with a TempVars Collection Object
        2. Retrieving Names and Values of TempVar Objects
        3. Using Temporary Global Variables in Expressions
        4. Removing a Temporary Variable from a TempVars Collection Object
      11. Understanding and Using Static Variables
        1. Hands-On 3-7: Using Static Variables
      12. Understanding and Using Object Variables
        1. Hands-On 3-8: Working with Object Variables
      13. Finding a Variable Definition
        1. Hands-On 3-9: Finding a Variable Definition
      14. What Type Is This Variable?
        1. Hands-On 3-10: Asking Questions about the Variable Type
      15. Using Constants in VBA Procedures
      16. Intrinsic Constants
        1. Hands-On 3-11: Exploring Access’s Constants
        2. Hands-On 3-12: Using Intrinsic Constants in a VBA Procedure
      17. Grouping Constants with the Enum Type
      18. Chapter Summary
    4. Chapter 4 Passing Arguments to Procedures and Functions
      1. Writing a Function Procedure
        1. Hands-On 4-1: Writing a Function Procedure with Arguments
        2. Hands-On 4-2: Executing a Function Procedure from the Immediate Window
        3. Hands-On 4-3: Executing a Function Procedure from a Subroutine
      2. Specifying the Data Type for a Function’s Result
        1. Hands-On 4-4: Calling a Function from a Procedure
      3. Passing Arguments by Reference and by Value
        1. Hands-On 4-5: Passing Arguments to Subroutines and Functions
      4. Using Optional Arguments
        1. Hands-On 4-6: Using Optional Arguments
      5. Using the IsMissing Function
      6. Built-in Functions
      7. Using the MsgBox Function
        1. Hands-On 4-7: Formatting the Message Box
        2. Hands-On 4-8: Using the MsgBox Function with Arguments
        3. Returning Values from the MsgBox Function
          1. Hands-On 4-9: Returning Values from the MsgBox Function
      8. Using the InputBox Function
        1. Hands-On 4-10: Using the InputBox Function
      9. Converting Data Types
        1. Hands-On 4-11: Converting Data Types
      10. Using Master Procedures and Subprocedures
        1. Hands-On 4-12: Breaking Up Large Procedures
      11. Chapter Summary
    5. Chapter 5 Decision Making with VBA
      1. If…Then Statement
        1. Hands-On 5-1: Using the If…Then Statement
      2. Multi-Line If…Then Statement
        1. Hands-On 5-2: Using the Multi-Line If…Then Statement
      3. Decisions Based on More Than One Condition
        1. Hands-On 5-3: Using the If…Then…AND Conditional Statement
      4. If…Then…Else Statement
        1. Hands-On 5-4: Using the If…Then…Else Conditional Statement
      5. If…Then…ElseIf Statement
      6. Nested If…Then Statements
        1. Hands-On 5-5: Using Nested If…Then Statements
      7. Select Case Statement
        1. Hands-On 5-6: Using the Select Case Statement
        2. Using Is with the Case Clause
        3. Specifying a Range of Values in a Case Clause
          1. Hands-On 5-7: Using the Select Case Statement in a Function
        4. Specifying Multiple Expressions in a Case Clause
      8. Chapter Summary
    6. Chapter 6 Repeating Actions in VBA
      1. Using the Do…While Statement
        1. Hands-On 6-1: Using the Do…While Statement
      2. Another Approach to the Do…While Statement
        1. Hands-On 6-2: Using the Do…While Statement with a Condition at the Bottom of the Loop
      3. Using the Do…Until Statement
        1. Hands-On 6-3: Using the Do…Until Statement
      4. Another Approach to the Do…Until Statement
        1. Hands-On 6-4: Using the Do…Until Statement with a Condition at the Bottom of the Loop
      5. For…Next Statement
        1. Hands-On 6-5: Using the For…Next Statement
      6. For Each…Next Statement
        1. Hands-On 6-6: Using the For Each…Next Statement
      7. Exiting Loops Early
        1. Hands-On 6-7: Early Exit from a Loop
      8. Nested Loops
        1. Hands-On 6-8: Using Nested Loops
      9. Chapter Summary
    7. Chapter 7 Working with Arrays
      1. Declaring Arrays
      2. Array Upper and Lower Bounds
      3. Using Arrays in VBA Procedures
        1. Hands-On 7-1: Using a One-Dimensional Array
      4. Arrays and Looping Statements
        1. Hands-On 7-2: Using Arrays and Loops
        2. Hands-On 7-3: Passing Elements of an Array to Another Procedure
        3. Hands-On 7-4: Using Arrays and Loops in Real Life
      5. Using a Two-Dimensional Array
        1. Hands-On 7-5: Using a Two-Dimensional Array
      6. Static and Dynamic Arrays
        1. Hands-On 7-6: Using a Dynamic Array
      7. Array Functions
        1. The Array Function
          1. Hands-On 7-7: Using the Array Function
        2. The IsArray Function
          1. Hands-On 7-8: Using the IsArray Function
        3. The Erase Function
          1. Hands-On 7-9: Removing Data from an Array
        4. The LBound and UBound Functions
          1. Hands-On 7-10: Finding the Lower and Upper Bounds of an Array
      8. Errors in Arrays
        1. Hands-On 7-11: Understanding Errors in Arrays
      9. Parameter Arrays
        1. Hands-On 7-12: Working with Parameter Arrays
      10. Chapter Summary
    8. Chapter 8 Custom Collections and Class Modules
      1. Terminology
      2. Working with Collections
        1. Declaring a Custom Collection
        2. Adding Objects to a Custom Collection
          1. Hands-On 8-1: Creating a Custom Collection
        3. Removing Objects from a Custom Collection
          1. Hands-On 8-2: Removing Objects from a Collection
      3. Creating Custom Objects
        1. Creating a Class
          1. Custom Project 8-1 (Step 1): Creating a Class Module
        2. Variable Declarations
          1. Custom Project 8-1 (Step 2): Declaring Class Members
        3. Defining the Properties for the Class
        4. Creating the Property Get Procedures
          1. Custom Project 8-1 (Step 3): Writing Property Get Procedures
        5. Creating the Property Let Procedures
          1. Custom Project 8-1 (Step 4): Writing Property Let Procedures
        6. Creating the Class Methods
          1. Custom Project 8-1 (Step 5): Writing Class Methods
        7. Creating an Instance of a Class
          1. Custom Project 8-1 (Step 6): Creating an Instance of a Class
        8. Event Procedures in the Class Module
      4. Creating the User Interface
        1. Custom Project 8-1 (Step 7): Designing a User Form
        2. Custom Project 8-1 (Step 8): Writing Event Procedures
      5. Running the Custom Application
        1. Custom Project 8-1 (Step 9): Running the Custom Project
      6. Watching the Execution of Your VBA Procedures
        1. Custom Project 8-1 (Step 10): Custom Project Code Walkthrough
      7. Chapter Summary
    9. Chapter 9 Debugging VBA Procedures and Handling Errors
      1. Testing VBA Procedures
      2. Stopping a Procedure
        1. Using Breakpoints
          1. Custom Project 9-1: Debugging a Function Procedure
            1. Removing Breakpoints
        2. Using the Immediate Window in Break Mode
        3. Using the Stop Statement
        4. Adding Watch Expressions
          1. Hands-On 9-1: Working with the Watches Window
            1. Removing Watch Expressions
        5. Using Quick Watch
          1. Hands-On 9-2: Using the Quick Watch Dialog Box
      3. Using the Locals Window and the Call Stack Dialog Box
        1. Hands-On 9-3: Using the Locals Window
      4. Stepping Through VBA Procedures
        1. Hands-On 9-4: Stepping Through a Procedure
        2. Stepping Over a Procedure
          1. Hands-On 9-5: Stepping Over a Procedure
        3. Stepping Out of a Procedure
        4. Running a Procedure to Cursor
      5. Setting the Next Statement
      6. Showing the Next Statement
      7. Stopping and Resetting VBA Procedures
      8. Understanding and Using Conditional Compilation
        1. Hands-On 9-6: Using Conditional Compilation
      9. Navigating with Bookmarks
      10. Trapping Errors
        1. Hands-On 9-7: Error Trapping Techniques
        2. Hands-On 9-8: Understanding Error Trapping
      11. Generating Errors to Test Error Handling
      12. Chapter Summary
  5. PART II Access VBA Programming with DAO and ADO
    1. Chapter 10 Data Access Technologies in Microsoft Access
      1. Understanding Database Engines: Jet/ACE
      2. Understanding Access Versions and File Formats
      3. Understanding Library References
      4. Overview of Object Libraries in Microsoft Access
        1. The Visual Basic for Applications Object Library (VBA)
        2. The Microsoft Access 12.0 Object Library
        3. The Microsoft Office 12.0 Access Database Engine Object Library
        4. The Microsoft Access DAO 3.6 Object Library
        5. The Microsoft ActiveX Data Objects 2.8 Library (ADO)
      5. Creating a Reference to the ADO Library
        1. Hands-On 10-1: Setting Up a Reference to ADO Object Libraries
      6. Understanding Connection Strings
      7. Using ODBC Connection Strings
        1. Creating and Using ODBC DSN Connections
          1. Hands-On 10-2: Creating and Using the ODBC DSN Connection to Read Data from a dBASE File
        2. Creating and Using DSN-less ODBC Connections
      8. Using OLE DB Connection Strings
      9. Connection String via a Data Link File
        1. Hands-On 10-3: Creating and Using a Universal Data Link File
      10. Opening Microsoft Access Databases
        1. Opening a Microsoft Jet Database in Read/Write Mode with DAO
          1. Hands-On 10-4: Opening a Database with DAO in Read/Write Mode
        2. Opening a Microsoft Jet Database in Read/Write Mode with ADO
          1. Hands-On 10-5: Opening a Database with ADO in Read/Write Mode
        3. Opening a Microsoft Access Database in Read-Only Mode with DAO
        4. Opening a a Microsoft Jet Database in Read-Only Mode with ADO
        5. Opening a Microsoft Jet Database Secured with a Password
          1. Hands-On 10-6: Setting a Database Password and Opening a Password-Protected Database with DAO
          2. Hands-On 10-7: Setting a Database Password and Opening a Password-Protected Database with ADO
        6. Opening a Microsoft Jet Database with User-Level Security
          1. Hands-On 10-8: Opening a Database Secured at the User Level
      11. Connecting to the Current Access Database
        1. Hands-On 10-9: Establishing a Connection to the Current Access Database
      12. Opening Other Databases, Spreadsheets, and Text Files from Access 2007
        1. Connecting to an SQL Server Database
          1. Hands-On 10-10: Connecting to an SQL Server Database Using SQLOLEDB Provider
        2. Opening a Microsoft Excel Spreadsheet
          1. Hands-On 10-11: Opening an Excel Spreadsheet with DAO
          2. Hands-On 10-12: Opening an Excel Spreadsheet with ADO
        3. Opening a Text File Using ADO
          1. Hands-On 10-13: Opening a Text File with ADO
      13. Creating a New Access Database
        1. Creating a Database with DAO
          1. Hands-On 10-14: Creating a New Database Using DAO
        2. Creating a Database with ADO
          1. Hands-On 10-15: Creating a New Microsoft Access Database Using ADO
      14. Copying a Database
        1. Copying a Database with DAO
          1. Hands-On 10-16: Copying a Database with DAO
        2. Copying a Database with FileSystemObject
          1. Hands-On 10-17: Copying a File
      15. Database Errors
        1. Hands-On 10-18: Using the VBA Err Object and ADO Errors Collection
      16. Compacting a Database
        1. Hands-On 10-19: Compacting a Database
      17. Chapter Summary
    2. Chapter 11 Creating and Accessing Database Tables and Fields
      1. Creating a Microsoft Access Table and Setting Field Properties (DAO Method)
        1. Hands-On 11-1: Creating a Table (DAO)
      2. Creating a Microsoft Access Table and Setting Field Properties (ADO Method)
      3. Copying a Table
        1. Hands-On 11-2: Making a Copy of a Table (ADO)
      4. Deleting a Database Table
        1. Hands-On 11-3: Deleting a Table from a Database (ADO)
      5. Adding New Fields to an Existing Table
        1. Hands-On 11-4: Adding a New Field to a Table (ADO)
        2. Hands-On 11-5: Adding a New Field to a Table (DAO)
      6. Removing a Field from a Table
        1. Hands-On 11-6: Removing a Field from a Table (ADO)
        2. Hands-On 11-7: Removing a Field from a Table (DAO)
      7. Retrieving Table Properties
        1. Hands-On 11-8: Listing Table Properties
      8. Retrieving Field Properties
        1. Hands-On 11-9: Listing Field Properties
      9. Linking a Microsoft Access Table
        1. Hands-On 11-10: Linking a Microsoft Jet Table
      10. Linking a dBASE Table
      11. Linking a Microsoft Excel Spreadsheet
        1. Hands-On 11-11: Linking an Excel Spreadsheet
      12. Listing Database Tables
        1. Hands-On 11-12: Creating a List of Database Tables
      13. Listing Tables and Fields
        1. Hands-On 11-13: Using the OpenSchema Method to List Database Tables
        2. Hands-On 11-14: Listing Tables and Their Fields Using the OpenSchema Method
      14. Listing Data Types
        1. Hands-On 11-15: Listing Data Types
      15. Changing the AutoNumber
        1. Hands-On 11-16: Changing the Value of an AutoNumber
      16. Chapter Summary
    3. Chapter 12 Setting Up Primary Keys, Indexes, and Table Relationships
      1. Creating a Primary Key Index
        1. Hands-On 12-1: Creating a Primary Key (ADO)
        2. Hands-On 12-2: Creating a Primary Key (DAO)
      2. Creating a Single-Field Index
        1. Hands-On 12-3: Adding a Single-Field Index to an Existing Table (ADO)
      3. Adding a Multiple-Field Index to a Table
        1. Hands-On 12-4: Adding a Multiple-Field Index to an Existing Table (DAO)
      4. Listing Indexes in a Table
        1. Hands-On 12-5: Listing Indexes in a Table (ADO)
      5. Deleting Table Indexes
        1. Hands-On 12-6: Deleting Indexes from a Table (ADO)
      6. Creating Table Relationships
        1. Hands-On 12-7: Creating a One-to-Many Relationship
      7. Chapter Summary
    4. Chapter 13 Finding and Reading Records
      1. Introduction to DAO Recordsets
        1. Opening Various Types of Recordsets
          1. Hands-On 13-1: Opening Table-, Dynaset-, and Snapshot-type Recordsets (DAO)
        2. Opening a Snapshot and Counting Records
          1. Hands-On 13-2: Opening a Snapshot-type Recordset and Retrieving the Number of Records (DAO)
        3. Retrieving the Contents of a Specific Field in a Table
          1. Hands-On 13-3: Retrieving Field Values (DAO)
        4. Moving between Records in a Table
          1. Hands-On 13-4: Moving between Records in a Table (DAO)
        5. Finding Records in a Table-Type Recordset
          1. Hands-On 13-5: Finding Records in a Table-type Recordset (DAO)
        6. Finding Records in Dynasets or Snapshots
          1. Hands-On 13-6: Finding a Record in a Dynaset-type Recordset (DAO)
        7. Finding the nth Record in a Snapshot
          1. Hands-On 13-7: Finding the nth Record in a Snapshot-type Recordset (DAO)
      2. Introduction to ADO Recordsets
        1. Cursor Types
        2. Lock Types
        3. Cursor Location
        4. The Options Parameter
        5. Opening a Recordset
          1. Hands-On 13-8: Opening a Recordset (ADO)
            1. Opening a Recordset Based on a Table or Query
          2. Hands-On 13-9: Opening a Recordset Based on a Table or Query (ADO)
            1. Opening a Recordset Based on an SQL Statement
          3. Hands-On 13-10: Opening a Recordset Based on an SQL Statement (ADO)
            1. Opening a Recordset Based on Criteria
          4. Hands-On 13-11: Opening a Recordset Based on Criteria (ADO)
            1. Opening a Recordset Directly
          5. Hands-On 13-12: Opening a Recordset Directly (ADO)
        6. Moving Around in a Recordset
          1. Hands-On 13-13: Moving Around in a Recordset (ADO)
        7. Finding the Record Position
          1. Hands-On 13-14: Finding the Record Position (ADO)
        8. Reading Data from a Field
          1. Hands-On 13-15: Retrieving Field Values (ADO)
        9. Returning a Recordset as a String
          1. Hands-On 13-16: Converting the Recordset to a String (ADO)
        10. Finding Records Using the Find Method
          1. Hands-On 13-17: Finding Records Using the Find Method (ADO)
        11. Finding Records Using the Seek Method
          1. Hands-On 13-18: Finding Records Using the Seek Method (ADO)
        12. Finding a Record Based on Multiple Conditions
          1. Hands-On 13-19: Finding a Record Based on Multiple Criteria (ADO)
        13. Using Bookmarks
          1. Hands-On 13-20: Marking Records with a Bookmark (ADO)
        14. Using Bookmarks to Filter a Recordset
          1. Hands-On 13-21: Using Bookmarks to Filter Records (ADO)
        15. Using the GetRows Method to Fill the Recordset
          1. Hands-On 13-22: Counting the Number of Returned Records (ADO)
      3. Chapter Summary
    5. Chapter 14 Working with Records
      1. Adding a New Record with DAO
        1. Hands-On 14-1: Adding a New Record to a Table (DAO)
      2. Adding a New Record with ADO
        1. Hands-On 14-2: Adding a New Record to a Table (ADO)
      3. Modifying a Record with DAO
        1. Hands-On 14-3: Modifying a Record in a Table (DAO)
      4. Modifying a Record with ADO
        1. Hands-On 14-4: Modifying a Record (ADO)
      5. Editing Multiple Records with ADO
        1. Hands-On 14-5: Performing Batch Updates (ADO)
      6. DeletingaRecordwithDAO
        1. Hands-On 14-6: Deleting a Record (DAO)
      7. Deleting a Record with ADO
        1. Hands-On 14-7: Deleting a Record (ADO)
      8. Copying Records to an Excel Spreadsheet
        1. Hands-On 14-8: Copying Records to an Excel Worksheet (DAO)
      9. Copying Records to a Word Document
        1. Hands-On 14-9: Copying Records to a Word Document (Example 1)
        2. Hands-On 14-10: Copying Records to a Word Document (Example 2)
      10. Copying Records to a Text File
        1. Hands-On 14-11: Copy Records to a Text File (ADO)
      11. Filtering Records Using the SQL WHERE Clause
        1. Hands-On 14-12: Filtering Records with the SQL WHERE Clause (DAO)
        2. Hands-On 14-13: Filtering Records with the SQL WHERE Clause (ADO)
      12. Filtering Records Using the Filter Property
        1. Hands-On 14-14: Filtering Records Using the Filter Property (DAO)
        2. Hands-On 14-15: Filtering Records Using the Filter Property (ADO)
      13. Sorting Records
        1. Hands-On 14-16: Sorting Records (ADO)
      14. Chapter Summary
    6. Chapter 15 Creating and Running Queries with DAO/ADO
      1. Creating a Select Query Manually
      2. Creating a Select Query with DAO
        1. Hands-On 15-1: Creating a Select Query with DAO
      3. Creating a Select Query with ADO
        1. Hands-On 15-2: Creating a Select Query with ADO
      4. Executing an Existing Select Query with ADO
        1. Hands-On 15-3: Executing a Select Query
          1. Hands-On 15-4: Executing a Select Query with an ADO Catalog Object
      5. Modifying an Existing Query with ADO
        1. Hands-On 15-5: Modifying a Select Query with ADO
      6. Creating and Running a Parameter Query with DAO
        1. Hands-On 15-6: Creating a Parameter Query with DAO
      7. Creating and Running a Parameter Query with ADO
        1. Hands-On 15-7: Creating a Parameter Query with ADO
        2. Hands-On 15-8: Executing a Parameter Query with ADO
      8. Creating and Running a Make-Table Query with DAO
        1. Hands-On 15-9: Creating and Running a Make-Table Query with DAO
      9. Creating and Running an Update Query with DAO
        1. Hands-On 15-10: Creating and Running an Update Query with DAO
      10. Executing an Update Query with ADO
        1. Hands-On 15-11: Executing an Update Query
        2. Hands-On 15-12: Executing an Update Query Using the Command Object
      11. Running an Append Query with DAO/ADO
        1. Hands-On 15-13: Running an Append Query with DAO
      12. Running a Delete Query with DAO
        1. Hands-On 15-14: Running a Delete Query with DAO
      13. Creating and Running a Pass-Through Query with DAO
      14. Creating and Executing a Pass-Through Query with ADO
        1. Hands-On 15-15: Creating a Pass-Through Query with ADO
        2. Hands-On 15-16: Executing a Pass-Through Query Saved in Access (ADO)
      15. Performing Other Operations with Queries
        1. Retrieving Query Properties with DAO
          1. Hands-On 15-17: Listing Query Properties with DAO
        2. Listing All Queries in a Database with DAO/ADO
          1. Hands-On 15-18: Listing Queries in a Database with ADO
      16. Deleting a Query from a Database with DAO/ADO
        1. Hands-On 15-19: Deleting a Query from a Database (DAO)
        2. Hands-On 15-20: Deleting a Query from a Database (ADO)
      17. Determining if a Query Is Updatable
        1. Hands-On 15-21: Determining if Records Returned by a Query Can Be Edited (DAO)
      18. Chapter Summary
    7. Chapter 16 Using Advanced ADO/DAO Features
      1. Fabricating a Recordset
        1. Hands-On 16-1: Creating a Custom Recordset (ADO)
      2. Disconnected Recordsets
        1. Hands-On 16-2: Creating a Disconnected Recordset (ADO)
      3. Saving a Recordset to Disk
        1. Hands-On 16-3: Saving Records to a Disk File (ADO)
        2. Custom Project 16-1: Filling a Combo Box with a Disconnected Recordset (ADO)
        3. Custom Project 16-2: Taking Persisted Data on the Road
          1. Part 1: Saving a Recordset to Disk
          2. Part 2: Creating an Unbound Access Form to View and Modify Data
          3. Part 3: Writing Procedures to Control the Form and Its Data
          4. Part 4: Viewing and Editing Data Offline
          5. Part 5: Connecting to a Database to Update the Original Data
      4. Cloning a Recordset
        1. Custom Project 16-3: Displaying the Contents of the Current and Previous Record by Using the Clone Method
      5. Introduction to Data Shaping
        1. Writing a Simple SHAPE Statement
        2. Working with Data Shaping
          1. Hands-On 16-4: Creating a Shaped Recordset (ADO)
        3. Writing a Complex SHAPE Statement
          1. Shaped Recordsets with Multiple Children
            1. Hands-On 16-5: Creating a Shaped Recordset with Multiple Children (ADO)
          2. Shaped Recordsets with Grandchildren
            1. Custom Project 16-4: Using Hierarchical Recordsets
              1. Part 1: Creating a Form with a TreeView Control
              2. Part 2: Writing an Event Procedure for the Form Load Event
      6. Transaction Processing
        1. Creating a Transaction with ADO
          1. Hands-On 16-6: Using a Database Transaction to Insert Records (ADO)
        2. Creating a Transaction with DAO
          1. Hands-On 16-7: Using a Database Transaction to Archive Records (DAO)
      7. Chapter Summary
    8. Chapter 17 Implementing Database Security
      1. Two Types of Security in Microsoft Access
        1. Share-Level Security (in Access ACCDB and MDB File Formats)
        2. User-Level Security
      2. Understanding Workgroup Information Files
        1. Creating and Joining Workgroup Information Files
          1. Custom Project 17-1: Securing a Microsoft Access MDB Database
            1. Part 1: Creating a New Access Database in the MDB File Format
            2. Part 2: Establishing User-Level Security
            3. Part 3: Opening a Secured MDB Database
      3. Creating and Managing Group and User Accounts
        1. Hands-On 17-1: Creating User and Group Accounts (ADO)
        2. Deleting User and Group Accounts
          1. Hands-On 17-2: Deleting User and Group Accounts (ADO)
        3. Listing User and Group Accounts
          1. Hands-On 17-3: Listing Group and User Accounts (ADO)
        4. Listing Users in Groups
          1. Hands-On 17-4: Listing Users in Groups (ADO)
      4. Setting and Retrieving User and Group Permissions
        1. Determining the Object Owner
          1. Hands-On 17-5: Retrieving the Name of the Object Owner (ADO)
        2. Setting User Permissions for an Object
          1. Hands-On 17-6: Setting User Permissions for an Object (ADO)
        3. Setting User Permissions for a Database
          1. Hands-On 17-7: Setting User Permissions for a Database (ADO)
        4. Setting User Permissions for Containers
          1. Hands-On 17-8: Setting User Permissions for Containers (ADO)
        5. Checking Permissions for Objects
          1. Hands-On 17-9: Checking Permissions for a Specific Object (ADO)
        6. Setting a Database Password Using the CompactDatabase Method
          1. Hands-On 17-10: Setting a Database Password (JRO)
        7. Setting a Database Password Using the NewPassword Method
          1. Hands-On 17-11: Setting a Database Password (DAO)
        8. Changing a User Password
          1. Hands-On 17-12: Changing a User Password (ADO)
      5. Encrypting a Secured MDB Database
        1. Hands-On 17-13: Encrypting a Database (JRO)
      6. Chapter Summary
    9. Chapter 18 Database Replication
      1. Creating a Design Master
        1. Hands-On 18-1: Creating a Design Master
      2. Creating a Full Replica
        1. Hands-On 18-2: Creating a Full Replica
      3. Creating a Partial Replica
        1. Hands-On 18-3: Creating a Partial Replica
      4. Replicating Objects
        1. Hands-On 18-4: Checking If an Object Is Replicable
        2. Hands-On 18-5: Making an Object Replicable
      5. Keeping Objects Local
        1. Hands-On 18-6: Preventing an Object from Being Replicated
      6. Synchronizing Replicas
        1. Hands-On 18-7: Synchronizing Replicas
      7. Retrieving Replica Properties
        1. Hands-On 18-8: Retrieving Replica Properties
      8. Synchronization Conflicts
        1. Custom Project 18-1: Replication via Microsoft Access User Interface
          1. Part 1: Creating a Replica Named Replica_England.mdb
          2. Part 2: Creating a Replica Named Replica_France.mdb
          3. Part 3: Making Changes in the Replica_England Database
          4. Part 4: Making Changes in the Replica_France Database
          5. Part 5: Synchronizing Replicas
        2. Hands-On 18-9: Retrieving the Name of the Conflict Table
      9. Chapter Summary
  6. PART III Programming with the Jet Data Definition Language
    1. Chapter 19 Creating, Modifying, and Deleting Tables and Fields
      1. Hands-On 19-1: Setting the ANSI SQL Query Mode
      2. Creating Tables
        1. Hands-On 19-2: Creating a Table in the Current Database (DDL with ADO)
        2. Hands-On 19-3: Creating a Table in a New Database (DDL with ADO/ADOX)
      3. Deleting Tables
        1. Hands-On 19-4: Deleting a Table
      4. Modifying Tables with DDL
        1. Adding New Fields to a Table
          1. Hands-On 19-5: Adding a New Field to an Existing Table
        2. Changing the Data Type of a Table Column
          1. Hands-On 19-6: Changing the Field Data Type
        3. Changing the Size of a Text Column
          1. Hands-On 19-7: Changing the Size of a Field
        4. Deleting a Column from a Table
          1. Hands-On 19-8: Deleting a Field from a Table
        5. Adding a Primary Key to a Table
          1. Hands-On 19-9: Adding a Primary Key to a Table
        6. Adding a Multiple-Field Index to a Table
          1. Hands-On 19-10: Adding a Unique Index Based on Two Fields to an Existing Table
        7. Deleting an Indexed Column
          1. Hands-On 19-11: Deleting a Field that Is a Part of an Index
        8. Deleting an Index
          1. Hands-On 19-12: Deleting an Index
        9. Setting a Default Value for a Table Column
          1. Hands-On 19-13: Setting a Default Value for a Field
        10. Changing the Seed and Increment Value of AutoNumber Columns
          1. Hands-On 19-14: Changing the Start (Seed) Value of the AutoNumber Field
      5. Chapter Summary
    2. Chapter 20 Enforcing Data Integrity and Relationships between Tables
      1. Using CHECK Constraints
        1. Hands-On 20-1: Using a CHECK Constraint to Specify a Condition for All Values Entered for the Column
        2. Hands-On 20-2: Creating a Table with a Validation Rule Referencing a Column in Another Table
        3. Hands-On 20-3: Deleting Tables and Constraints Using the Access User Interface
      2. Establishing Relationships between Tables
        1. Hands-On 20-4: Relating Two Tables and Setting up Cascading Referential Integrity Rules
      3. Using the Data Definition Query Window
        1. Hands-On 20-5: Running Data Definition Statements in the Microsoft Access User Interface
      4. Chapter Summary
    3. Chapter 21 Defining Indexes and Primary Keys
      1. Creating Tables with Indexes
        1. Hands-On 21-1: Creating a Table with a Single-Field Index
      2. Adding an Index to an Existing Table
        1. Hands-On 21-2: Adding a Single-Field Index to an Existing Table
      3. Creating a Table with a Primary Key
        1. Hands-On 21-3: Creating a Single-Field Primary Key
      4. Creating Indexes with Restrictions
        1. Hands-On 21-4: Creating a Primary Key Index with Restrictions
        2. Hands-On 21-5: Creating an Index that Disallows Null Values in the Key
        3. Hands-On 21-6: Creating an Index with the Ignore Null Option
      5. Deleting Indexes
        1. Hands-On 21-7: Deleting an Index
      6. Chapter Summary
    4. Chapter 22 Database Security
      1. Setting the Database Password
        1. Hands-On 22-1: Setting a Database Password
      2. Removing the Database Password
        1. Hands-On 22-2: Deleting a Database Password
      3. Creating a User Account
        1. Hands-On 22-3: Creating a User Account
      4. Changing a User Password
        1. Hands-On 22-4: Changing a User Password
      5. Creating a Group Account
        1. Hands-On 22-5: Creating a Group Account
      6. Adding Users to Groups
        1. Hands-On 22-6: Making a User Account a Member of a Group
      7. Removing a User from a Group
        1. Hands-On 22-7: Removing a User Account from a Group
      8. Deleting a User Account
        1. Hands-On 22-8: Deleting a User Account
      9. Granting Permissions for an Object
        1. Hands-On 22-9: Granting Permissions for Tables to an Existing Group
      10. Revoking Security Permissions
        1. Hands-On 22-10: Revoking Security Permissions
      11. Deleting a Group Account
        1. Hands-On 22-11: Deleting a Group Account
      12. Chapter Summary
    5. Chapter 23 Views and Stored Procedures
      1. Creating a View
        1. Hands-On 23-1: Creating a View Based on a Table
      2. Enumerating Views
        1. Hands-On 23-2: Generating a List of Saved Views
      3. Deleting a View
        1. Hands-On 23-3: Deleting a View
      4. Creating a Stored Procedure
      5. Creating a Parameterized Stored Procedure
        1. Hands-On 23-4: Creating a Stored Procedure that Accepts Parameters
      6. Executing a Parameterized Stored Procedure
        1. Hands-On 23-5: Executing a Parameterized Stored Procedure
      7. Deleting a Stored Procedure
        1. Hands-On 23-6: Deleting a Stored Procedure
      8. Changing Database Records with Stored Procedures
      9. Chapter Summary
  7. PART IV Event Programming in Forms and Reports
    1. Chapter 24 Using Form Events
      1. Data Events
        1. Current
          1. Hands-On 24-1: Writing the Form_Current Event Procedure
        2. BeforeInsert
          1. Hands-On 24-2: Writing the Form_BeforeInsert Event Procedure
        3. AfterInsert
          1. Hands-On 24-3: Writing the Form_AfterInsert Event Procedure
        4. BeforeUpdate
          1. Hands-On 24-4: Writing the Form_BeforeUpdate Event Procedure
        5. AfterUpdate
          1. Hands-On 24-5: Writing the Form_AfterUpdate Event Procedure
        6. Dirty
          1. Hands-On 24-6: Writing the Form_Dirty Event Procedure
        7. OnUndo
        8. Delete
          1. Hands-On 24-7: Writing the Form_Delete Event Procedure
        9. BeforeDelConfirm
          1. Hands-On 24-8: Writing the Form_BeforeDelConfirm Event Procedure
        10. AfterDelConfirm
          1. Hands-On 24-9: Writing the Form_AfterDelConfirm Event Procedure
      2. Focus Events
        1. Activate
          1. Hands-On 24-10: Writing the Form_Activate Event Procedure
        2. Deactivate
          1. Hands-On 24-11: Writing the Form_Deactivate Event Procedure
        3. GotFocus
        4. LostFocus
      3. Mouse Events
        1. Click
          1. Hands-On 24-12: Writing the Form_Click Event Procedure
        2. DblClick
        3. MouseDown
          1. Hands-On 24-13: Writing the Form_MouseDown Event Procedure
        4. MouseMove
        5. MouseUp
        6. MouseWheel
      4. Keyboard Events
        1. KeyDown
          1. Hands-On 24-14: Writing the Form_KeyDown Event Procedure
        2. KeyPress
          1. Hands-On 24-15: Writing the Form_KeyPress Event Procedure
        3. KeyUp
          1. Hands-On 24-16: Writing the Form_KeyUp Event Procedure
      5. Error Events
        1. Error
          1. Hands-On 24-17: Writing the Form_Error Event Procedure
      6. Filter Events
        1. Filter
          1. Hands-On 24-18: Writing the Form_Filter Event Procedure
        2. ApplyFilter
          1. Hands-On 24-19: Writing the Form_ApplyFilter Event Procedure
      7. Timing Events
        1. Timer
          1. Hands-On 24-20: Writing the Form_Timer Event Procedure
      8. PivotTable/PivotChart Events
        1. Referencing the Microsoft Office Web Components Object Library
        2. Data Source Events
          1. OnConnect
            1. Hands-On 24-21: Writing the Form_OnConnect Event Procedure
          2. OnDisconnect
          3. BeforeQuery
          4. Query
            1. Hands-On 24-22: Writing the Form_BeforeQuery and Form_Query Event Procedures
        3. Display Events
          1. BeforeScreenTip
          2. AfterLayout
            1. Hands-On 24-23: Writing the Form_AfterLayout Event Procedure
          3. BeforeRender
            1. Hands-On 24-24: Writing the Form_BeforeRender Event Procedure
          4. AfterRender
            1. Hands-On 24-25: Writing the Form_AfterRender Event Procedure
          5. AfterFinalRender
            1. Hands-On 24-26: Writing the Form_AfterFinalRender Event Procedure
        4. Change Events
          1. DataChange
            1. Hands-On 24-27: Writing the Form_DataChange Event Procedure
          2. DataSetChange
          3. PivotTableChange
            1. Hands-On 24-28: Writing the Form_PivotTableChange Event Procedure
          4. SelectionChange
            1. Hands-On 24-29: Writing the Form_SelectionChange Event Procedure
          5. ViewChange
            1. Hands-On 24-30: Writing the Form_ViewChange Event Procedure
        5. Command Events
          1. CommandEnabled
            1. Hands-On 24-31: Writing the Form_CommandEnabled Event Procedure
          2. CommandChecked
            1. Hands-On 24-32: Writing the Form_CommandChecked Event Procedure
          3. CommandBeforeExecute
          4. CommandExecute
            1. Hands-On 24-33: Writing the Form_CommandExecute Event Procedure
        6. Keyboard and Mouse Events
      9. Events Recognized by Form Sections
        1. DblClick (Form Section Event)
          1. Hands-On 24-34: Writing the Detail_DblClick Event Procedure
      10. Chapter Summary
    2. Chapter 25 Using Report Events
      1. Open
        1. Hands-On 25-1: Writing the Report_Open Event Procedure
      2. Close
      3. Activate
        1. Hands-On 25-2: Writing the Report_Activate Event Procedure
      4. Deactivate
      5. NoData
        1. Hands-On 25-3: Writing the Report_NoData Event Procedure
      6. Page
        1. Hands-On 25-4: Writing the Report_Page Event Procedure
      7. Error
        1. Hands-On 25-5: Writing the Report_Error Event Procedure
      8. Events Recognized by Report Sections
        1. Format (Report Section Event)
          1. Hands-On 25-6: Writing the Detail_Format Event Procedure
          2. Hands-On 25-7: Writing the PageFooterSection_Format Event Procedure
        2. Print (Report Section Event)
          1. Hands-On 25-8: Writing the Detail_Print Event Procedure
        3. Retreat
      9. Chapter Summary
    3. Chapter 26 Events Recognized by Controls
      1. Hands-On 26-1: Launching the Custom Access Application
      2. Enter (Control)
        1. Hands-On 26-2: Using the Enter Event Procedure for the Combo Box Control
      3. BeforeUpdate (Control)
        1. Hands-On 26-3: Using the BeforeUpdate Event Procedure for the Combo Box Control
      4. AfterUpdate (Control)
        1. Hands-On 26-4: Using the AfterUpdate Event Procedure for the Combo Box Control
      5. NotInList (Control)
        1. Hands-On 26-5: Using the NotInList Event Procedure for the Combo Box Control
      6. Click (Control)
        1. Hands-On 26-6: Using the Click Event Procedure for the Command Button Control
      7. DblClick (Control)
        1. Hands-On 26-7: Using the DblClick Event Procedure for the List Box Control
      8. Chapter Summary
    4. Chapter 27 More about Event Programming
      1. Sinking Events in Standalone Class Modules
        1. Custom Project 27-1: Sinking Events in a Standalone Class Module
          1. Part 1: File Preparation
          2. Part 2: Creating the cRecordLogger Class
          3. Part 3: Creating an Instance of the Custom Class in the Form’s Class Module
          4. Part 4: Testing the cRecordLogger Custom Class
          5. Part 5: Using the cRecordLogger Custom Class with another Form
      2. Writing Event Procedure Code in Two Places
      3. Responding to Control Events in a Class
        1. Hands-On 27-1: Responding to Control Events in a Class
      4. Declaring and Raising Events
        1. Hands-On 27-2: Declaring and Raising Events
      5. Chapter Summary
  8. PART V Taking Your VBA Programming Skills to the Web
    1. Chapter 28 Access and Active Server Pages
      1. Introduction to Active Server Pages
        1. Hands-On 28-1: Creating an Active Server Page from a Microsoft Access Table
      2. The ASP Object Model
      3. Installing Internet Information Services (IIS)
        1. Hands-On 28-2: Installing Internet Information Services (Windows 2000/ Windows XP)
      4. Creating a Virtual Directory
        1. Hands-On 28-3: Creating a Virtual Directory
        2. Hands-On 28-4: Requesting an ASP Page
      5. Retrieving Records
        1. Hands-On 28-5: Creating an ASP File to Retrieve Records
        2. Breaking Up a Recordset When Retrieving Records
          1. Hands-On 28-6: Creating a Multi-Page ASP File
          2. Hands-On 28-7: Creating an ASP File for Loading from a Hyperlink
        3. Retrieving Records with the GetRows Method
          1. Hands-On 28-8: Quick Data Retrieval
      6. Database Lookup Using Drop-Down Lists
        1. Hands-On 28-9: Creating a Web Page with a Drop-Down List Box
      7. Database Lookup Using a Multiple-Selection List Box
        1. Hands-On 28-10: Creating a Web Page with a Multiple-Selection List Box
      8. Adding Data into a Table
        1. Hands-On 28-11: Creating a Data Input Page
      9. Modifying a Record
        1. Hands-On 28-12: Creating a Page for Data Modification
      10. Deleting a Record
        1. Hands-On 28-13: Creating Pages that Allow Record Deletions
      11. Creating a Web User Interface for Database Access
        1. Hands-On 28-14: Providing Easy Access to Data with Frames
      12. Chapter Summary
    2. Chapter 29 XML Features in Access 2007
      1. What Is XML?
      2. XML Support in Access 2007
      3. Exporting XML Data
        1. Hands-On 29-1: Exporting an Access Table to an XML File
        2. Understanding the XML Data File
          1. Hands-On 29-2: Examining the Contents of an XML Data File
        3. Understanding the XML Schema File
          1. Hands-On 29-3: Examining the Contents of an XML Schema File
        4. Understanding the XSL Transformation Files
          1. Hands-On 29-4: Examining the Contents of an XSL File
        5. Viewing XML Documents Formatted with Stylesheets
        6. Advanced XML Export Options
          1. Data Export Options
          2. Schema Export Options
          3. Presentation Export Options
      4. Applying XSLT Transforms to Exported Data
        1. Hands-On 29-5: Creating a Custom Transformation File
        2. Hands-On 29-6: Exporting Data and Applying a Custom XSL File
      5. Importing XML Data
        1. Hands-On 29-7: Importing a Schema File (XSD) to an Access Database
        2. Custom Project 29-1: Importing XML Data to an Access Database and Applying a Transform
          1. Part 1: Create a Custom Transformation File to Be Used after the XML Data Import
          2. Part 2: Export the Customers and Related Orders Tables to an XML File
          3. Part 3: Import to an Access Database Only Two Columns from the Customers Table and Five Columns from the Orders Table
      6. Exporting to and Importing from XML Programmatically
        1. Exporting to XML Using the ExportXML Method
          1. Hands-On 29-8: Exporting Multiple Tables to an XML Data File
          2. Custom Project 29-2: Exporting an Access Report to an XML Data File with ASP
            1. Part 1: Creating a VBA Procedure to Export Invoice Data
            2. Part 2: Executing the VBA Code to Export Data
            3. Part 3: Viewing the Invoice Page in the Browser
            4. Part 4: Examining the Content of the Invoice.htm File
        2. Transforming XML Data with the TransformXML Method
          1. Custom Project 29-3: Applying a Stylesheet to an XML Data File with the TransformXML Method
            1. Part 1: Creating a Custom Stylesheet for Transforming an XML Source File into Another XML Data File
            2. Part 2: Writing a VBA Procedure to Export and Transform Data
            3. Part 3: Importing the Transformed XML Data File to Access
        3. Importing to XML Using the ImportXML Method
      7. Manipulating XML Documents Programmatically
        1. Loading and Retrieving the Contents of an XML File
          1. Hands-On 29-9: Loading and Retrieving the Contents of an XML File
        2. Working with XML Document Nodes
        3. Hands-On 29-10: Working with XML Document Nodes
        4. Retrieving Information from Element Nodes
          1. Hands-On 29-11: Retrieving Information from Element Nodes
        5. Retrieving Specific Information from Element Nodes
          1. Hands-On 29-12: Retrieving Specific Information from Element Nodes
        6. Retrieving the First Matching Node
      8. Using ActiveX Data Objects with XML
        1. Saving an ADO Recordset as XML to Disk
          1. Hands-On 29-13: Creating an XML Document from ADO
        2. Attribute-Centric and Element-Centric XML
        3. Changing the Type of an XML File
          1. Hands-On 29-14: Creating a Stylesheet to Convert Attribute-Centric XML to Element-Centric XML
        4. Applying an XSL Stylesheet
          1. Hands-On 29-15: Applying a Stylesheet to an ADO XML Document and Importing It to Access
        5. Transforming Attribute-Centric XML Data into an HTML Table
          1. Hands-On 29-16: Creating a Generic Stylesheet to Transform an Attribute-Centric XML File into HTML
          2. Hands-On 29-17: Linking the Attribute-Centric XML File with the Generic Stylesheet and Displaying the Transformed File in a Web Browser
        6. Loading an XML Document in Excel
          1. Hands-On 29-18: From Access to Excel: Loading an XML File into an Excel Workbook
      9. Chapter Summary
  9. PART VI Working with New Features in Access 2007
    1. Chapter 30 Programming the User Interface
      1. The Getting Started with Microsoft Office Access Window
        1. The Office Button
        2. The Quick Access Toolbar
      2. Customizing the Navigation Pane
        1. Hands-On 30-1: Adding a Custom Group to the Navigation Pane
        2. Hands-On 30-2: Assigning Objects to Custom Groups in the Navigation Pane
      3. Using VBA to Customize the Navigation Pane
        1. Locking the Navigation Pane
        2. Controlling the Display of Database Objects
          1. Hands-On 30-3: Using the NavigateTo Method to Control the Display of Database Objects in the Navigation Pane
        3. Setting Displayed Categories
        4. Saving and Loading the Configuration of the Navigation Pane
        5. Hands-On 30-4: Saving and Loading the Configuration of the Navigation Pane
      4. A Quick Overview of Access 2007 Ribbon Interface
      5. Ribbon Programming with XML, VBA, and Macros
        1. Creating the Ribbon Customization XML Markup
          1. Hands-On 30-5: Creating an XML Document with Ribbon Customizations
        2. Loading Ribbon Customizations from an External XML Document
          1. Custom Project 30-1: Applying Ribbon Customizations from an External XML File
            1. Part 1: Creating an Access Database and Setting Access Options
            2. Part 2: Setting Up the Programming Environment
            3. Part 3: Writing VBA Code
            4. Part 4: Creating an Autoexec Macro
            5. Part 5: Applying the Customized Ribbon
        3. Embedding Ribbon XML Markup in a VBA Procedure
        4. Storing Ribbon Customization XML Markup in a Table
          1. Hands-On 30-6: Creating a Local System Table to Store Ribbon Customization
        5. Assigning Ribbon Customizations to Forms and Reports
          1. Custom Project 30-2: Creating and Assigning Ribbon Customization to a Report
            1. Part 1: Creating Ribbon Customization for a Report Using a Local System Table
            2. Part 2: Making Access Aware of the New Customization
            3. Part 3: Assigning a Ribbon Customization to a Report
      6. Using Images in Ribbon Customizations
        1. Requesting Images via the loadImage Callback
          1. Custom Project 30-3: Loading Custom Images Using the loadImage Callback
            1. Part 1: Creating Ribbon Customization for Loading Custom Images
            2. Part 2: Setting Up the Programming Environment
            3. Part 3: Writing the VBA Callback Procedures
            4. Part 4: Making Access Aware of the New Customization
        2. Requesting Images via the getImage Callback
          1. Hands-On 30-7: Loading Custom Images Using the getImage Callback
        3. Understanding Attributes and Callbacks
      7. Using Various Controls in Ribbon Customizations
        1. Creating Toggle Buttons
        2. Creating Split Buttons, Menus, and Submenus
        3. Creating Check Boxes
        4. Creating Edit Boxes
        5. Creating Combo Boxes and Drop Downs
        6. Creating a Dialog Box Launcher
        7. Disabling a Control
        8. Repurposing a Built-in Control
        9. Refreshing the Ribbon
      8. The CommandBars Object and the Ribbon
      9. Customizing the Office Button Menu
      10. Chapter Summary
    2. Chapter 31 Tables, Forms, and Reports
      1. New Features in Tables
        1. Saving Tables as Queries
        2. Working with Attachment Data Type Fields
          1. Adding Attachments Using the Attachments Dialog Box
            1. Hands-On 31-1: Adding Attachments to Database Records
          2. Using an Access Query to Return Rows with Attachments
            1. Hands-On 31-2: Using an Access Query to Return Rows with Attachments
          3. Working with Attachments Using VBA
          4. Listing Attachments
            1. Hands-On 31-3: Using DAO to Retrieve the List of Attachments
          5. Retrieving the Fields Defined by the Attachment Data Type
          6. Saving Attachments
            1. Hands-On 31-4: Using DAO to Save Attachments to Disk
          7. Adding Attachments
            1. Hands-On 31-5: Using DAO to Add an Attachment to a Table Record
          8. Deleting Attachments
            1. Hands-On 31-6: Using DAO to Delete an Attachment from a Table Record
        3. Working with Multi-value Fields
          1. Hands-On 31-7: Creating a Multi-value Lookup Field
            1. Editing Values in a Multi-value Field
            2. Using an Access Query to Return Rows with Multi-value Fields
          2. Hands-On 31-8: Using an Access Query to Return Rows with Multi-value Fields
            1. Working with Multi-value Fields Using VBA
          3. Hands-On 31-9: Using DAO to Manipulate Multi-value Fields
            1. Adding Values to Multi-value Lookup Fields
          4. Hands-On 31-10: Using DAO to Add Values to a Multi-value Field
        4. Working with Append Only Memo Fields
          1. Working with Append Only Memo Fields Using VBA
            1. Custom Project 31-1: Working with Append Only Fields
              1. Part 1: Writing a VBA Procedure to Create a Table with an Append Only Memo Field
              2. Part 2: Entering Data in the Table
              3. Part 3: Writing a VBA Procedure to Retrieve the History Data from the Memo Field
        5. Rich Text Memo Fields
      2. New Features in Forms
        1. Many Ways to Create Access Forms
        2. Grouping Controls Using Layouts
        3. Rich Text Support in Forms
        4. AutoFormats
        5. Using Images in Access Forms
        6. Using the Attachments Control
          1. Custom Project 31-2: Working with the Attachments Control
            1. Part 1: Generating an Access Form
            2. Part 2: Modifying the Form to Display Additional Information about the Attachments
            3. Part 3: Writing an Event Procedure to Display Information about Attachments in the Text Boxes
      3. New Features in Reports
        1. Using the Report View
          1. Hands-On 31-11: Conditionally Formatting a Control in the Report View
        2. Sorting and Grouping Data
        3. Saving Reports in the PDF or XPS File Format
      4. Chapter Summary
    3. Chapter 32 Macros and Templates
      1. New Features in Macros
        1. Access 2007 Macro Security
        2. Using the AutoExec Macro
          1. Hands-On 32-1: Understanding and Using the AutoExec Macro
        3. Understanding Macro Actions, Arguments, and Conditions
        4. Creating Macros in Access 2007
          1. Creating and Using Standalone Macros
          2. Using Macro Groups
          3. Running Standalone Macros
          4. Creating and Using Embedded Macros
          5. Copying Embedded Macros
            1. Hands-On 32-2: Copying Embedded Macros
        5. Working in Sandbox Mode
        6. Error Handling in Macros
        7. Using Temporary Variables in Macros
        8. Converting Macros to VBA Code
          1. Converting a Standalone Macro to VBA
          2. Converting Embedded Macros to VBA
      2. New Features in Templates
        1. Creating a Custom Blank Template
        2. Understanding the ACCDT File Format
      3. Chapter Summary
  10. Index