Atjaunināt sīkdatņu piekrišanu

Alison Balter's Mastering Microsoft Office Access 2007 Development [Mīkstie vāki]

3.56/5 (18 ratings by Goodreads)
  • Formāts: Paperback / softback, 1248 pages, height x width x depth: 229x179x51 mm, weight: 1908 g
  • Izdošanas datums: 07-Jun-2007
  • Izdevniecība: Sams Publishing
  • ISBN-10: 0672329328
  • ISBN-13: 9780672329326
Citas grāmatas par šo tēmu:
  • Mīkstie vāki
  • Cena: 62,94 €*
  • * Šī grāmata vairs netiek publicēta. Jums tiks paziņota lietotas grāmatas cena
  • Šī grāmata vairs netiek publicēta. Jums tiks paziņota lietotas grāmatas cena.
  • Daudzums:
  • Ielikt grozā
  • Pievienot vēlmju sarakstam
  • Formāts: Paperback / softback, 1248 pages, height x width x depth: 229x179x51 mm, weight: 1908 g
  • Izdošanas datums: 07-Jun-2007
  • Izdevniecība: Sams Publishing
  • ISBN-10: 0672329328
  • ISBN-13: 9780672329326
Citas grāmatas par šo tēmu:
Microsoft Office 2007 is a major upgrade from the last version of Office; Access will also be greatly revised. Alison Balter is the name that Access developers will trust to guide them through Access 2007's new features. She has the rare ability to take complex topics and explain them clearly, as shown by the success of her ten previous books on Access. Balter is known for providing real-world solutions to specific Access development problems. She also is known for her ability to back up her practical examples with just enough underlying theory to give the reader a good overall understanding of Access. In short, this book will provide beginning and intermediate Access developers with everything that they need to know to design and build Access 2007 applications. It should also appeal to DBAs and power users who want or need to get started building custom Access apps. This latest book in her Mastering Access series will not disappoint her many fans who anxiously await each new version, and should win her new fans as well.

 

Introduction

Part I The Basics of Access Development

1 Access as a Development Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 What Every Developer Needs to Know About Databases and Tables . . . . . . . 75

3 Relationships: Your Key to Data Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

4 What Every Developer Needs to Know About Query Basics. . . . . . . . . . . . . . . . . 137

5 What Every Developer Needs to Know About Forms. . . . . . . . . . . . . . . . . . . . . . . . . . 189

6 What Every Developer Needs to Know About Reports. . . . . . . . . . . . . . . . . . . . . . . . 269

7 What Are Macros, and When Do You Need Them? . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

8 VBA: An Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

9 Objects, Properties, Methods, and Events Explained . . . . . . . . . . . . . . . . . . . . . . . . . . 401

10 Advanced Form Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

11 Advanced Report Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

12 Advanced Query Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539

13 Advanced VBA Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599

14 Exploiting the Power of Class Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637

15 What Are ActiveX Data Objects, and Why Are They Important . . . . . . . . . . 671

Part II What to Do When Things Dont Go as Planned

16 Debugging: Your Key to Successful Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727

17 Error Handling: Preparing for the Inevitable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755

18 Optimizing Your Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801

Part III Developing Multiuser and Enterprise Applications

19 A Strategy to Developing Access Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835

20 Using External Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847

21 Access 2007 and SharePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883

22 Developing Multiuser and Enterprise Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909

00_0672329328_FM.qxd 5/4/07 9:23 AM Page iii

Part IV Black Belt Programming

23 Working with and Customizing Ribbons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 935

24 Automation: Communicating with Other Applications. . . . . . . . . . . . . . . . . . . . . . 949

25 Exploiting the Power of the Windows API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985

26 Creating Your Own Libraries. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011

27 Using Builders and Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027

28 An Introduction to Access and the Internet/Intranet. . . . . . . . . . . . . . . . . . . . . . . . 1055

Part V Adding Polish to Your Application

29 Documenting Your Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073

30 Maintaining Your Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091

31 Database Security Made Easy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103

The following appendixes are available for download

at www.samspublishing.com/title/0672329328.

Part VI Appendixes

A Naming Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PDF:1131

B Table Structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PDF:1137

Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193

 

Papildus informācija

Microsoft Office 2007 is a major upgrade from the last version of Office; Access will also be greatly revised. Alison Balter is the name that Access developers will trust to guide them through Access 2007's new features. She has the rare ability to take complex topics and explain them clearly, as shown by the success of her ten previous books on Access. Balter is known for providing real-world solutions to specific Access development problems. She also is known for her ability to back up her practical examples with just enough underlying theory to give the reader a good overall understanding of Access. In short, this book will provide beginning and intermediate Access developers with everything that they need to know to design and build Access 2007 applications. It should also appeal to DBAs and power users who want or need to get started building custom Access apps. This latest book in her Mastering Access series will not disappoint her many fans who anxiously await each new version, and should win her new fans as well.
Introduction 1(6)
Part I The Basics of Access Development
Access as a Development Tool
7(68)
Why This
Chapter Is Important
7(1)
What Types of Applications Can You Develop in Access?
7(4)
Access as a Development Platform for Personal Applications
8(1)
Access as a Development Platform for Small Business Applications
8(1)
Access as a Development Platform for Departmental Applications
8(1)
Access as a Development Platform for Corporationwide Applications
9(1)
Access as a Front End for Enterprisewide Client/Server Applications
10(1)
Access as a Development Platform for Intranet/Internet Applications
11(1)
Access as a Scalable Product
11(1)
What Exactly Is a Database?
11(1)
Getting to Know the Database Objects
12(11)
Tables: A Repository for Your Data
12(4)
Queries: Stored Questions or Actions You Apply to Your Data
16(1)
Forms: A Means of Displaying, Modifying, and Adding Data
17(3)
Reports: Turning Data into Information
20(1)
Macros: A Means of Automating Your System
20(2)
Modules: The Foundation to the Application Development Process
22(1)
Object Naming Conventions
23(1)
Hardware Requirements
23(1)
What Hardware Does Microsoft Office Access 2007 Require?
23(1)
How Do I Get Started Developing an Access Application?
24(4)
Task Analysis
24(1)
Data Analysis and Design
24(3)
Prototyping
27(1)
Testing
27(1)
Implementation
28(1)
Maintenance
28(1)
What's New in Access 2007?
28(24)
What's New in the User Interface?
28(2)
Getting to Know the Ribbon
30(12)
Getting to Know the Navigation Pane
42(2)
Working with Tabbed Documents
44(3)
Exploring the New Status Bar
47(2)
Working with the Mini Toolbar
49(2)
What's New with Forms?
51(1)
What's New with Reports?
51(1)
The Exciting World of Pivot Tables and Pivot Charts
51(1)
Other New Features Found in Access 2007
52(4)
What Happened to Replication?
52(4)
What Happened to ADP Files?
56(1)
Additional Tips and Tricks
56(16)
Advanced Navigation Pane Techniques
56(9)
Creating Multi-valued Fields
65(7)
Practical Examples: The Application Design for a Computer Consulting Firm
72(2)
Summary
74(1)
What Every Developer Needs to Know About Databases and Tables
75(40)
Why This
Chapter Is Important
75(1)
Creating a New Database
75(4)
Creating a Database Using a Template
76(2)
Creating a Database from Scratch
78(1)
Building a New Table
79(3)
Designing a Table from Scratch
79(3)
Selecting the Appropriate Field Type for Your Data
82(5)
Text Fields: The Most Common Field Type
84(1)
Memo Fields: For Those Long Notes and Comments
84(1)
Number Fields: For When You Need to Calculate++
84(1)
Date/Time Fields: Tracking When Things Happened
84(1)
Currency Fields: Storing Money
85(1)
AutoNumber Fields: For Unique Record Identifiers
85(1)
Yes/No Fields: When One of Two Answers Is Correct
86(1)
OLE Object Fields: The Place to Store Just About Anything
86(1)
Attachment Fields: Storing Several Files in a Single Field
86(1)
Hyperlink Fields: Your Link to the Internet
87(1)
Working with Field Properties
87(11)
Field Size: Limiting What's Entered into a Field
88(1)
Format: Determining How Data Is Displayed
88(1)
Input Mask: Determining What Data Goes into a Field
89(2)
Caption: A Great Timesaver
91(1)
Default Value: Saving Data Entry Time
91(1)
Validation Rule: Controlling What the User Enters in a Field
92(2)
Validation Text: Providing Error Messages to the User
94(1)
Required: Making the User Enter a Value
94(1)
Allow Zero Length: Accommodating Situations with Nonexistent Data
95(1)
Indexed: Speeding Up Searches
96(1)
Unicode Compression: Compressing Your Data
97(1)
Using the All-Important Primary Key
98(1)
Working with the Lookup Feature
98(3)
Working with Table Properties
101(2)
Using Indexes to Improve Performance
103(1)
Using Access Tables with the Internet
103(6)
The Hyperlink Field Type
103(1)
Saving Table Data as HTML
104(3)
Saving Table Data as XML
107(2)
Viewing Object Dependencies
109(1)
Examining Database Specifications and Limitations
110(1)
Examining Table Specifications and Limitations
110(1)
Practical Examples: Designing the Tables Needed for a Computer Consulting Firm's Time and Billing Application
111(3)
Summary
114(1)
Relationships: Your Key to Data Integrity
115(22)
Why This
Chapter Is Important
115(1)
Introduction to Relational Database Design
115(9)
The History of Relational Database Design
116(1)
Goals of Relational Database Design
116(1)
Rules of Relational Database Design
116(1)
Normalization and Normal Forms
117(3)
Denormalization---Purposely Violating the Rules
120(1)
Integrity Rules
121(1)
Database-Specific Rules
122(1)
Examining the Types of Relationships
122(2)
Establishing Relationships in Access
124(4)
Establishing a Relationship Between Two Tables
125(1)
Looking at Guidelines for Establishing Relationships
126(2)
Modifying an Existing Relationship
128(1)
Establishing Referential Integrity
128(5)
Cascade Update Related Fields
130(1)
Cascade Delete Related Records
131(2)
Looking at the Benefits of Relationships
133(1)
Examining Indexes and Relationships
134(1)
Practical Examples: Establishing the Relationships Between the Tables Included in the Time and Billing Database
134(2)
Summary
136(1)
What Every Developer Needs to Know About Query Basics
137(52)
Why This
Chapter Is Important
137(1)
What Is a Query, and When Should You Use One?
137(1)
Everything You Need to Know About Query Basics
138(6)
Adding Tables to Your Query
139(1)
Adding Fields to Your Query
139(3)
Removing a Field from the Query Design Grid
142(1)
Inserting a Field After the Query Is Built
143(1)
Moving a Field to a Different Location on the Query Design Grid
143(1)
Saving and Naming Your Query
144(1)
Ordering Your Query Result
144(2)
Sorting by More Than One Field
145(1)
Refining Your Query with Criteria
146(3)
Working with Dates in Criteria
149(1)
Understanding How You Can Update Query Results
150(1)
Building Queries Based on Multiple Tables
151(6)
Pitfalls of Multitable Queries
153(2)
Row Fix-Up in Multitable Queries
155(2)
Creating Calculated Fields
157(3)
Getting Help from the Expression Builder
160(1)
Summarizing Data with Totals Queries
161(5)
Excluding Fields from the Output
166(1)
Understanding Nulls and Query Results
166(4)
Refining Your Queries with Field, Field List, and Query Properties
170(2)
Field Properties: Changing the Behavior of a Field
170(1)
Field List Properties: Changing the Properties of the Field List
171(1)
Query Properties: Changing the Behavior of the Overall Query
171(1)
Building Parameter Queries When You Don't Know the Criteria at Design Time
172(3)
Adding Smart Tags to Your Queries
175(4)
Adding a Smart Tag to a Query
175(1)
Using a Smart Tag
176(3)
Creating a Pivot Table or Pivot Chart from a Query
179(6)
Creating the Query to Display in PivotTable or PivotChart View
179(1)
Displaying the Query in PivotTable View
180(1)
Displaying Summarized Data
181(2)
Filtering Pivot Table Data
183(1)
Using Drill-Down
184(1)
Exchanging Axes
185(1)
Switching to PivotChart View
185(1)
Understanding Query Specifications and Limitations
185(1)
Practical Examples: Building Queries Needed by the Time and Billing Application for a Computer Consulting Firm
186(2)
Summary
188(1)
What Every Developer Needs to Know About Forms
189(80)
Why This
Chapter Is Important
189(1)
Understanding the Uses of Forms
189(3)
Examining the Anatomy of a Form
192(1)
Creating a New Form
193(3)
Creating a Form with the Form Wizard
193(3)
Creating a Form from Design View
196(1)
Working with the Form Design Window
196(9)
Understanding and Working with the Form Design Tools
196(2)
Adding Fields to the Form
198(1)
Selecting, Moving, Aligning, and Sizing Form Objects
199(5)
Modifying Object Tab Order
204(1)
Working in Layout View
205(13)
Using Stacked and Tabular Layouts
206(9)
Getting to Know Split Forms
215(1)
Using Alternating Background Colors for a Form
216(2)
Selecting the Correct Control for the Job
218(9)
Labels
219(1)
Text Boxes
219(1)
Combo Boxes
219(4)
List Boxes
223(1)
Check Boxes
224(1)
Option and Toggle Buttons
224(1)
Option Groups
224(3)
Control Morphing
227(1)
Morphing a Text Box into a Combo Box
227(1)
Morphing a Combo Box into a List Box
228(1)
Conditional Formatting
228(1)
Determining Which Form Properties Are Available and Why You Should Use Them
229(7)
Working with the Property Sheet
229(1)
Working with the Important Form Properties
229(7)
Determining Which Control Properties Are Available and Why You Should Use Them
236(6)
Format Properties of a Control
236(3)
Data Properties of a Control
239(1)
Other Properties of a Control
240(2)
Understanding Bound, Unbound, and Calculated Controls
242(1)
Using Expressions to Enhance Your Forms
243(1)
Using the Command Button Wizards: Programming Without Typing
244(2)
Building Forms Based on More Than One Table
246(3)
Creating One-to-Many Forms
246(3)
Working with Subforms
249(1)
Basing Forms on Queries: The Why and How
249(2)
Embedding SQL Statements Versus Stored Queries
250(1)
Connecting Access Forms and the Internet
251(2)
Adding a Hyperlink to a Form
251(2)
Saving a Form as HTML
253(1)
Saving a Form as XML
253(1)
Adding Smart Tags to Your Forms
253(3)
Adding a Smart Tag to a Form
253(2)
Using a Smart Tag
255(1)
Creating a Pivot Table or Pivot Chart from a Form
256(6)
Creating the Form to Display in PivotTable or PivotChart View
256(1)
Displaying the Form in PivotTable View
257(2)
Displaying Summarized Data
259(2)
Filtering Pivot Table Data
261(1)
Using Drill-Down
261(1)
Exchanging Axes
262(1)
Switching to PivotChart View
262(1)
Examining Form Specifications and Limitations
262(1)
Practical Examples: Designing Forms for Your Application
263(5)
Designing the Clients Form
263(3)
Designing the Projects Form
266(2)
Adding a Command Button That Links the Clients and Projects Forms
268(1)
Summary
268(1)
What Every Developer Needs to Know About Reports
269(46)
Why This
Chapter Is Important
269(1)
Examining Types of Reports Available
269(5)
Detail Reports
270(1)
Summary Reports
270(1)
Cross-Tabulation Reports
270(2)
Reports with Graphics and Charts
272(1)
Reports with Forms
272(1)
Reports with Labels
273(1)
Understanding the Anatomy of a Report
274(1)
Creating a New Report
275(3)
Creating a Report with the Report Wizard
275(3)
Creating a Report from Design View
278(1)
Working with the Report Design Window
278(4)
Understanding the Report Design Tools
278(1)
Adding Fields to the Report
278(1)
Selecting, Moving, Aligning, and Sizing Report Objects
279(3)
Selecting the Correct Control for the Job
282(2)
Labels
282(1)
Text Boxes
282(1)
Lines
282(1)
Rectangles
283(1)
Bound Object Frames
283(1)
Unbound Object Frames
283(1)
Image Controls
284(1)
Other Controls
284(1)
What Report Properties Are Available, and Why Should You Use Them?
284(5)
Working with the Property Sheet
285(1)
The Report's Format Properties
285(2)
The Report's Data Properties
287(1)
The Other Report Properties
288(1)
What Control Properties Are Available, and Why Should ou Use Them?
289(4)
The Control's Format Properties
290(2)
The Control's Data Properties
292(1)
The Other Control Properties
292(1)
Inserting Page Breaks
293(1)
Using Unbound, Bound, and Calculated Controls
293(1)
Using Expressions to Enhance Your Reports
293(1)
Building Reports Based on More Than One Table
293(8)
Creating One-to-Many Reports
294(6)
Working with Subreports
300(1)
Working with Sorting and Grouping
301(3)
Adding Sorting or Grouping
302(1)
What Are Group Header and Footer Properties, and Why Should You Use Them?
303(1)
Improving Performance and Reusability by Basing Reports on Stored Queries or Embedded SQL Statements
304(1)
Using Access Reports and the Internet
305(2)
Adding a Hyperlink to a Report
306(1)
Saving a Report as HTML
306(1)
Saving a Report as XML
306(1)
Understanding Report Specifications and Limitations
307(1)
Practical Examples: Building Reports Needed for Your Application
307(7)
Designing the rptClientListing Report
307(4)
Designing the rptTimeSheet Report
311(3)
Summary
314(1)
What Are Macros, and When Do You Need Them?
315(30)
Why This
Chapter Is Important
315(1)
Learning the Basics of Creating and Running a Macro
315(9)
Macro Actions
316(2)
Action Arguments
318(3)
Macro Names
321(2)
Macro Conditions
323(1)
Running an Access Macro
324(5)
Running a Macro from the Macro Design Window
325(1)
Running a Macro from the Macros Group of the Navigation Pane
326(1)
Triggering a Macro from a Form or Report Event
326(3)
Modifying an Existing Macro
329(7)
Inserting New Macro Actions
329(1)
Deleting Macro Actions
329(1)
Moving Macro Actions
330(1)
Copying Macro Actions
331(1)
Creating an Embedded Macro
332(2)
What New Features Are Available in Macros?
334(2)
Documenting Your Macro: Adding Comments
336(1)
Testing a Macro
337(2)
Determining When You Should Use Macros and When You Shouldn't
339(1)
Converting a Macro to VBA Code
339(2)
Creating an AutoExec Macro
341(1)
Using the DoCmd Object
342(1)
Practical Examples: Adding an AutoExec Macro to the Time and Billing Application
343(1)
Summary
343(2)
VBA: An Introduction
345(56)
Why This
Chapter Is Important
345(1)
VBA Explained
345(2)
What Are Access Class Modules, Standard Modules, Form Modules, and Report Modules?
347(11)
Where Is VBA Code Written?
348(1)
The Anatomy of a Module
348(1)
Option Explicit
349(3)
Creating Event Procedures
352(1)
Creating Functions and Subroutines
352(2)
Calling Event and User-Defined Procedures
354(1)
Scope and Lifetime of Procedures
355(3)
Working with Variables
358(5)
Declaring Variables
358(1)
VBA Data Types
359(1)
Scope and Lifetime of Variables: Exposing Your Variablesas Little as Possible
360(3)
Adding Comments to Your Code
363(1)
Using the Line Continuation Character
364(1)
Using the VBA Control Structures
364(9)
If...Then...Else
365(1)
The Immediate If (IIf)
366(1)
The Conditional If: Conditional Compilation
367(1)
Select Case
368(1)
Looping
369(2)
For...Next
371(1)
With...End With
372(1)
For Each...Next
372(1)
Passing Parameters and Returning Values
373(1)
Executing Procedures from the Module Window
374(1)
The DoCmd Object: Performing Macro Actions
374(2)
Working with Built-In Functions
376(4)
Built-In Functions
376(3)
Functions Made Easy with the Object Browser
379(1)
Working with Constants
380(3)
Working with Symbolic Constants
381(1)
Working with Intrinsic Constants
382(1)
Working with the Visual Basic Editor Tools
383(11)
List Properties and Methods
384(1)
List Constants
385(1)
Quick Info
385(1)
Parameter Info
386(1)
Complete Word
386(1)
Definition
387(1)
Mysteries of the Coding Environment Solved
388(1)
The Project Window
388(2)
The Properties Window
390(1)
The View Microsoft Access Tool
390(1)
Find and Replace
390(1)
Help
391(2)
Splitting the Code Window
393(1)
Using Bookmarks to Save Your Place
394(1)
Customizing the VBE
394(2)
Coding Options---The Editor Tab
394(1)
Code Color, Fonts, and Sizes---The Editor Format Tab
395(1)
General Options---The General Tab
395(1)
Docking Options---The Docking Tab
396(1)
Practical Examples: Using Event Routines, User-Defined Functions, and Subroutines
396(3)
Summary
399(2)
Objects, Properties, Methods, and Events Explained
401(30)
Why This
Chapter Is Important
401(1)
Understanding Objects, Properties, Events, and Methods
401(4)
What Exactly Are Objects?
402(1)
What Exactly Are Properties?
402(2)
What Exactly Are Events?
404(1)
What Exactly Are Methods?
404(1)
Using the Object Browser to Learn About Access's Objects
405(2)
How to Use the Object Browser
405(1)
Pasting Code Templates into a Procedure
406(1)
Referring to Objects
407(1)
Working with Properties and Methods
408(2)
Telling the Difference Between Properties and Methods
408(1)
Using a Bang Versus a Period
409(1)
Default Properties
410(1)
Declaring and Assigning Object Variables
410(2)
Object Variables Versus Regular Variables
410(1)
Generic Versus Specific Object Variables
411(1)
Cleaning Up After Yourself
412(1)
Understanding the Differences Between Objects and Collections
412(1)
Manipulating a Single Object
412(1)
Manipulating a Collection of Objects
413(1)
Passing Objects to Subroutines and Functions
413(1)
Determining the Type of a Control
414(1)
Using Special Properties That Refer to Objects
415(1)
Understanding Access's Object Model
416(8)
The Application Object
416(2)
The Forms Collection
418(1)
The Reports Collection
419(1)
The Modules Collection
420(1)
The CurrentProject Object
420(2)
The CurrentData Object
422(1)
The CodeProject Object
423(1)
The CodeData Object
423(1)
The Screen Object
423(1)
The DoCmd Object
423(1)
Taking Advantage of Additional Useful Properties
424(1)
Practical Examples: Working with Objects
425(4)
Enabling and Disabling Command Buttons
425(4)
Summary
429(2)
Advanced Form Techniques
431(62)
Why This
Chapter Is Important
431(1)
What Are the Form Events, and When Do You Use Them?
431(12)
Current
431(1)
BeforeInsert
432(1)
AfterInsert
432(1)
BeforeUpdate
433(1)
AfterUpdate
434(1)
Dirty
434(1)
Undo
434(1)
Delete
435(1)
BeforeDelConfirm
435(1)
AfterDelConfirm
435(1)
Open
435(1)
Load
436(1)
Resize
436(1)
Unload
437(1)
Close
438(1)
Activate
438(1)
Deactivate
438(1)
GotFocus
438(1)
LostFocus
439(1)
Click
439(1)
DblClick
439(1)
MouseDown
439(1)
MouseMove
439(1)
MouseUp
439(1)
KeyDown
439(1)
KeyUp
440(1)
KeyPress
440(1)
Error
440(1)
Filter
440(1)
ApplyFilter
440(1)
Timer
441(1)
Understanding the Sequence of Form Events
441(2)
What Are the Section and Control Events, and When Do You Use Them?
443(7)
BeforeUpdate
443(1)
AfterUpdate
443(1)
Updated
444(1)
Change
444(1)
NotInList
444(1)
Enter
445(1)
Exit
445(1)
GotFocus
445(1)
LostFocus
446(1)
Click
446(1)
DblClick
447(1)
MouseDown
448(1)
MouseMove
448(1)
MouseUp
448(1)
KeyDown
448(1)
KeyUp
449(1)
KeyPress
449(1)
Understanding the Sequence of Control Events
449(1)
Referring to Me
450(1)
What Types of Forms Can I Create, and When Are They Appropriate?
450(10)
Single Forms: Viewing One Record at a Time
451(1)
Continuous Forms: Viewing Multiple Records at a Time
451(2)
Multipage Forms: Finding Solutions When Everything Doesn't Fit on One Screen
453(2)
Tabbed Forms: Conserving Screen Real Estate
455(2)
Switchboard Forms: Controlling Your Application
457(2)
Splash Screen Forms: Creating a Professional Opening to Your Application
459(1)
Dialog Forms: Gathering Information
459(1)
Using Built-In Dialog Boxes
460(4)
Message Boxes
460(2)
Input Boxes
462(1)
The FileDialog Object
463(1)
Taking Advantage of Built-In, Form-Filtering Features
464(2)
Including Objects from Other Applications: Linking Versus Embedding
466(2)
Bound OLE Objects
466(1)
Unbound OLE Objects
467(1)
Using OpenArgs
468(1)
Switching a Form's RecordSource
468(3)
Learning Power Combo Box and List Box Techniques
471(5)
Handling the NotInList Event
472(1)
Working with a Pop-Up Form
473(1)
Adding Items to a Combo Box or List Box at Runtime
474(1)
Handling Multiple Selections in a List Box
475(1)
Learning Power Subform Techniques
476(1)
Referring to Subform Controls
476(1)
Using Automatic Error Checking
477(2)
Viewing Object Dependencies
479(1)
Using AutoCorrect Options
480(1)
Propagating Field Properties
481(2)
Synchronizing a Form with Its Underlying Recordset
483(1)
Creating Custom Properties and Methods
484(6)
Creating Custom Properties
484(5)
Creating Custom Methods
489(1)
Practical Examples: Applying Advanced Techniques to Your Application
490(1)
Getting Things Going with a Startup Form
490(1)
Building a Splash Screen
491(1)
Summary
491(2)
Advanced Report Techniques
493(46)
Why This
Chapter Is Important
493(1)
Events Available for Reports and When to Use Them
493(3)
The Open Event
493(1)
The Close Event
494(1)
The NoData Event
494(1)
The Page Event
495(1)
The Error Event
495(1)
Order of Events for Reports
496(1)
Events Available for Report Sections and When to Use Them
496(5)
The Format Event
496(2)
The Print Event
498(2)
The Retreat Event
500(1)
Order of Section Events
500(1)
Programmatically Manipulating Report Sections
501(1)
Taking Advantage of Special Report Properties
501(2)
MoveLayout
502(1)
NextRecord
502(1)
PrintSection
502(1)
Interaction of MoveLayout, NextRecord, and PrintSection
502(1)
FormatCount
503(1)
PrintCount
503(1)
HasContinued
503(1)
WillContinue
503(1)
Controlling the Printer
503(2)
The Printer Object
503(1)
The Printers Collection
504(1)
Using Automatic Error Checking
505(2)
Propagating Field Properties
507(2)
Incorporating Practical Applications of Report Events and Properties
509(27)
Changing a Report's RecordSource
509(4)
Working with Report Filters
513(2)
Working with the Report Sort Order
515(1)
Using the Same Report to Display Summary, Detail, or Both
516(2)
Numbering Report Items
518(2)
Printing Multiple Labels
520(2)
Determining Where a Label Prints
522(1)
Building a Report from a Crosstab Query
523(7)
Printing the First and Last Page Entries in the Page Header
530(3)
Creating a Multifact Crosstab Report
533(3)
Practical Examples: Practicing What You Learned
536(1)
Summary
537(2)
Advanced Query Techniques
539(60)
Why This
Chapter Is Important
539(1)
Using Action Queries
539(9)
Update Queries
539(3)
Delete Queries
542(1)
Append Queries
543(2)
Make Table Queries
545(2)
Using Action Queries Versus Processing Records with Code
547(1)
Viewing Special Query Properties
548(4)
Unique Values Property
549(1)
Unique Records Property
549(2)
Top Values Property
551(1)
Optimizing Queries
552(4)
Understanding the Query Compilation Process
553(1)
Analyzing a Query's Performance
553(1)
Steps You Can Take to Improve a Query's Performance
554(1)
Rushmore Technology
555(1)
Using Crosstab Queries
556(6)
Creating a Crosstab Query with the Crosstab Query Wizard
557(2)
Creating a Crosstab Query Without the Crosstab Query Wizard
559(2)
Creating Fixed Column Headings
561(1)
Important Notes About Crosstab Queries
561(1)
Establishing Outer Joins
562(2)
Establishing Self-Joins
564(2)
Understanding SQL
566(9)
What Is SQL, and Where Did It Come From?
566(1)
What Do You Need to Know About SQL?
567(1)
SQL Syntax
567(1)
The Select Statement
567(6)
Applying What You Have Learned
573(2)
Building Union Queries
575(3)
The All Keyword
576(1)
Sorting the Query Results
576(1)
Using the Graphical QBE to Create a Union Query
576(1)
Important Notes about Union Queries
577(1)
Using Pass-Through Queries
578(1)
Examining the Propagation of Nulls and Query Results
579(2)
Running Subqueries
581(1)
Using SQL to Update Data
582(2)
The Update Statement
582(1)
The Delete Statement
582(1)
The Insert Into Statement
583(1)
The Select Into Statement
583(1)
Using SQL for Data Definition
584(2)
The Create Table Statement
584(1)
The Create Index Statement
584(1)
The Alter Table Statement
585(1)
The Drop Index Statement
585(1)
The Drop Table Statement
586(1)
Using the Result of a Function as the Criteria for a Query
586(2)
Passing Parameter Query Values from a Form
588(2)
Understanding Jet 4.0 ANSI-92 Extensions
590(5)
Table Extensions
590(3)
View and Stored Procedures Extensions
593(1)
Transaction Extensions
594(1)
Practical Examples: Applying These Techniques in Your Application
595(3)
Archiving Payments
595(2)
Showing All Payments
597(1)
Creating a State Table
597(1)
Summary
598(1)
Advanced VBA Techniques
599(38)
Why This
Chapter Is Important
599(1)
What Are User-Defined Types, and Why Would You Use Them?
599(3)
Declaring a User-Defined Type
600(1)
Creating a Type Variable
600(1)
Storing Information from a Record in a Form into a Type Variable
601(1)
Retrieving Information from the Elements of a Type Variable
601(1)
Working with Constants
602(3)
Defining Your Own Constants
602(2)
Working with Intrinsic Constants
604(1)
Working with Arrays
605(5)
Declaring and Working with Fixed Arrays
605(2)
Declaring and Working with Dynamic Arrays
607(2)
Passing Arrays as Parameters
609(1)
Understanding Advanced Function Techniques
610(8)
Passing by Reference Versus Passing by Value
610(3)
Optional Parameters: Building Flexibility into Functions
613(3)
Named Parameters: Eliminate the Need to Count Commas
616(1)
Recursive Procedures
616(2)
Working with Empty and Null
618(7)
Working with Empty
618(1)
Working with Null
619(6)
Creating and Working with Custom Collections
625(3)
Creating a Custom Collection
626(1)
Adding Items to a Custom Collection
626(1)
Accessing an Item in a Custom Collection
627(1)
Removing Items from a Custom Collection
627(1)
Iterating Through the Elements of a Custom Collection
628(1)
Handling Files with Low-Level File Handling
628(1)
Understanding and Effectively Using Compilation Options
629(1)
Compile on Demand
629(1)
Importing and Exporting Code Modules
630(1)
Working with Project Properties
631(1)
Practical Examples: Putting Advanced Techniques to Use
632(3)
Examples of Null, the DoCmd Object, and Intrinsic Constants
632(1)
An Example of Using a Type Structure
633(2)
Summary
635(2)
Exploiting the Power of Class Modules
637(34)
Why This
Chapter Is Important
637(1)
Object Orientation---An Introduction
637(1)
Creating and Using a Class Module
638(4)
Adding Properties
639(1)
Adding Methods
639(1)
Instantiating and Using the Class
640(1)
Property Let and Get---Adding Properties the Right Way
640(2)
Setting Values with Property Set
642(1)
Creating Multiple Class Instances
642(1)
Adding Code to the Initialize and Terminate Events
643(1)
Initialize
643(1)
Terminate
644(1)
Working with Enumerated Types
644(2)
Building Hierarchies of Classes
646(1)
Adding a Parent Property to Classes
647(1)
Using the Implements Keyword
648(1)
Working with Custom Collections
648(3)
Creating a Custom Collection
649(1)
Adding Items to a Custom Collection
649(1)
Looping Through the Elements of a Custom Collection
650(1)
Referencing Items in a Custom Collection
650(1)
Removing Items from a Custom Collection
650(1)
Adding Your Own Events
651(1)
Practical Examples: Using Class Modules
652(17)
The FileInformation Class
652(4)
The Data Access Class
656(10)
The SystemInformation Class
666(3)
Summary
669(2)
What Are ActiveX Data Objects, and Why Are They Important?
671(56)
Why This
Chapter Is Important
671(1)
Examining the ADO Model
671(9)
The Connection Object
672(4)
The Recordset Object
676(2)
The Command Object
678(2)
Understanding ADO Recordset Types
680(8)
The CursorType Parameter
680(2)
The LockType Parameter
682(2)
The Options Parameter
684(1)
Consistent Versus Inconsistent Updates
685(1)
Selecting a Cursor Location
686(1)
Working with the Supports Method
687(1)
Working with ADO Recordset Properties and Methods
688(16)
Examining Record-Movement Methods
688(2)
Detecting the Limits of a Recordset
690(1)
Counting the Number of Records in a Recordset
691(2)
Sorting, Filtering, and Finding Records
693(6)
Using the AbsolutePosition Property
699(1)
Using the Bookmark Property
700(1)
Running Parameter Queries
701(1)
Refreshing Recordset Data
702(1)
Working with Persisting Recordsets
702(2)
Modifying Table Data Using ADO Code
704(11)
Changing Record Data One Record at a Time
704(3)
Performing Batch Updates
707(1)
Making Bulk Changes
708(4)
Deleting an Existing Record
712(2)
Adding a New Record
714(1)
Creating and Modifying Database Objects Using ADO Code
715(4)
Adding a Table Using Code
715(2)
Removing a Table Using Code
717(1)
Establishing Relationships Using Code
717(1)
Creating a Query Using Code
718(1)
Practical Examples: Applying These Techniques to Your Application
719(5)
Using Recordset Methods on a Data-Entry Form
719(5)
Summary
724(3)
Part II What to Do When Things Don't Go as Planned
Debugging: Your Key to Successful Development
727(28)
Why This
Chapter Is Important
727(1)
Avoiding Bugs
727(2)
Option Explicit
728(1)
Strong-Typing
728(1)
Naming Standards
728(1)
Variable Scoping
728(1)
Bugs Happen!
728(1)
Harnessing the Power of the Immediate Window
729(6)
Testing Values of Variables and Properties
730(1)
Setting Values of Variables and Properties
730(2)
Clearing the Immediate Window
732(1)
Practicing with the Built-In Functions
733(1)
Executing Subroutines, Functions, and Methods
733(1)
Printing to the Immediate Window at Runtime
734(1)
Invoking the Debugger
735(1)
Using Breakpoints to Troubleshoot
736(2)
Stepping Through Code
738(4)
Using Step Into
738(1)
Executing Until You Reach the Next Breakpoint
739(2)
Using Step Over
741(1)
Using Step Out
742(1)
Setting the Next Statement to Execute
742(1)
Using the Call Stack Window
743(1)
Working with the Locals Window
744(1)
Working with Watch Expressions
745(5)
Using Auto Data Tips
745(1)
Using a Quick Watch
745(1)
Adding a Watch Expression
746(2)
Editing a Watch Expression
748(1)
Breaking When an Expression Is True
748(1)
Breaking When an Expression Changes
749(1)
Continuing Execution After a Runtime Error
750(1)
Looking at Gotchas with the Immediate Window
751(1)
Using Assertions
752(1)
Debugging Tips
752(1)
Practical Examples: Debugging Real Applications
753(1)
Summary
753(2)
Error Handling: Preparing for the Inevitable
755(46)
Why This
Chapter Is Important
755(1)
Implementing Error Handling
755(3)
Using On Error Statements
758(2)
The On Error GoTo Statement
758(2)
The On Error Resume Next Statement
760(1)
Using Resume Statements
760(4)
The Resume Statement
761(1)
The Resume Next Statement
762(1)
The Resume <LineLabel> Statement
763(1)
Clearing an Error
764(1)
Examining the Cascading Error Effect
765(1)
Using the Err Object
766(1)
Raising an Error
767(2)
Generating an Error on Purpose
767(1)
Creating User-Defined Errors
768(1)
Using the Errors Collection
769(1)
Creating a Generic Error Handler
770(16)
Logging the Error
774(2)
Determining the Appropriate Response to an Error
776(4)
Emailing the Error
780(2)
Creating an Error Form
782(3)
Printing the Error Form
785(1)
Preventing Your Own Error Handling from Being Invoked
786(1)
Creating a Call Stack
786(4)
Building a Custom Error Handler Class
790(6)
Working with Error Events
796(1)
Creating a List of Error Codes and Descriptions
797(1)
Practical Examples: Incorporating Error Handling
798(1)
Summary
799(2)
Optimizing Your Application
801(34)
Why This
Chapter Is Important
801(1)
Introducing Optimization
801(1)
Modifying Hardware and Software Configurations
802(4)
Hardware, Hardware, More Hardware, Please!
802(4)
Change Access's Software Settings
806(1)
What Is the Access Database Engine?
806(1)
Letting the Performance Analyzer Determine Problem Areas
807(1)
Designing Tables to Optimize Performance
808(2)
Why Be Normal?
808(1)
I Thought You Just Told Me to Normalize
808(1)
Index, Index, Index!
809(1)
Select the Correct Data Type
809(1)
Designing Database Objects to Improve Performance
810(21)
Optimizing the Performance of Your Queries
810(1)
Making Coding Changes to Improve Performance
811(18)
Designing Forms and Reports to Improve Performance
829(2)
Practical Examples: Improving the Performance of Your Applications
831(1)
Summary
832(3)
Part III Developing Multiuser and Enterprise Applications
A Strategy to Developing Access Applications
835(12)
Why This
Chapter Is Important
835(1)
Splitting Databases into Tables and Other Objects
835(2)
Basing Forms and Reports on Queries or Embedded SQL Statements
837(1)
Preparing an Application for Distribution
838(4)
Basing Your Application Around Forms
839(1)
Adding Startup Options to Your Database
839(1)
Securing Your Application
839(2)
Building Error Handling into Your Application
841(1)
Adding Custom Help
841(1)
Building Custom Ribbons
841(1)
Using Access as a Front End
842(3)
Factors You Need to Worry About When Converting to Client/Server
842(1)
Benefits and Costs of Client/Server Technology
843(1)
Your Options When Using Access as a Front End
844(1)
What Are the Considerations for Migrating to a Client/Server Environment?
845(1)
Practical Examples: Applying the Strategy to the Computer Consulting Firm Application
845(1)
Summary
845(2)
Using External Data
847(36)
Why This
Chapter Is Important
847(1)
Importing, Linking, and Opening Files: When and Why
848(2)
Selecting an Option
848(2)
Looking at Supported File Formats
850(1)
Importing External Data
850(4)
Using the User Interface
850(2)
Using Code
852(2)
Creating a Link to External Data
854(10)
Using the User Interface
854(5)
Using Code
859(5)
Opening an External Table
864(2)
Providing Connection Information
864(1)
Opening the Table
864(2)
Understanding Windows Registry Settings
866(1)
Using the Jet OLEDB: Link Provider String
866(1)
Working with Passwords
867(2)
Refreshing and Removing Links
869(3)
Updating Links That Have Moved
869(2)
Deleting Links
871(1)
Making a Local Table from a Linked Table
871(1)
Looking at Special Considerations
872(1)
dBASE
872(1)
Text Data
873(1)
Troubleshooting
873(1)
Connection Problems
873(1)
Temp Space
874(1)
Looking at Performance Considerations and Links
874(1)
Working with HTML Documents
874(3)
Practical Examples: Working with External Data from Within Your Application
877(4)
Splitting the Database Using the Database Splitter
877(1)
Refreshing Links
877(4)
Summary
881(2)
Access 2007 and SharePoint
883(26)
Why This
Chapter Is Important?
883(2)
Exporting Selected Data to a SharePoint Site
883(1)
Moving an Entire Database to a SharePoint Site
884(1)
Opening Access Forms and Reports from a SharePoint Site
884(1)
Creating Databases from SharePoint Lists
884(1)
Taking SharePoint Lists Offline with Access
884(1)
Summary of Benefits of Working with SharePoint
884(1)
The Access 2007 (accdb) File Format and SharePoint
885(1)
Exporting Data to a SharePoint Site
885(6)
Why Export Data to a SharePoint Site?
885(1)
How to Export Data to a SharePoint Site
886(5)
Publishing Data to a SharePoint Site
891(5)
How the Wizard Moves Data to the SharePoint Site
896(1)
Opening Access Forms and Reports from a SharePoint Site
896(4)
Linking to and Importing from SharePoint Lists
900(3)
Taking SharePoint Lists Offline with Access
903(3)
Synchronizing Your Changes with SharePoint
903(1)
Working Online
904(1)
Discarding Your Changes
904(2)
Reestablishing Links When a SharePoint Site Has Been Moved
906(1)
Summary
907(2)
Developing Multiuser and Enterprise Applications
909(26)
Why This
Chapter Is Important
909(1)
Designing Your Application with Multiuser Issues in Mind
909(4)
Multiuser Design Strategies
910(2)
The Basics of Linking to External Data
912(1)
Understanding Access's Locking Mechanisms
913(1)
Understanding the Client/Server Model
914(1)
Deciding Whether to Use the Client/Server Model
914(5)
Dealing with a Large Volume of Data
916(1)
Dealing with a Large Number of Concurrent Users
916(1)
Demanding Faster Performance
917(1)
Handling Increased Network Traffic
917(1)
Implementing Backup and Recovery
917(1)
Focusing on Security
918(1)
Sharing Data Among Multiple Front-End Tools
918(1)
Understanding What It All Means
918(1)
Understanding the Roles That Access Plays in the Application Design Model
919(3)
The Front End and Back End as Access ACCDB Files
919(1)
The Front End as an ACCDB File Using Links to Communicateto a Back End
919(1)
The Front End Using SQL Pass-Through to Communicate to a Back End
920(1)
The Front End Executing Procedures Stored on a Back End
921(1)
The Front End as a Microsoft Access Data Project Communicating Directly to a Back End
921(1)
Learning the Client/Server Buzzwords
922(1)
Upsizing: What to Worry About
923(2)
Indexes
923(1)
AutoNumber Fields
923(1)
Default Values
924(1)
Validation Rules
924(1)
Relationships
924(1)
Security
924(1)
Table and Field Names
924(1)
Reserved Words
925(1)
Case Sensitivity
925(1)
Properties
925(1)
Visual Basic Code
925(1)
Proactively Preparing for Upsizing
925(1)
Using Transaction Processing
926(5)
Understanding the Benefits of Transaction Processing
927(1)
Modifying the Default Behavior of Transaction Processing
927(2)
Implementing Explicit Transaction Processing
929(2)
Practical Examples: Getting Your Application Ready for an Enterprise Environment
931(1)
Summary
931(4)
Part IV Black Belt Programming
Working with and Customizing Ribbons
935(14)
Why This
Chapter Is Important
935(1)
Customizing the Ribbon: An Overview
935(1)
Showing System Tables
936(1)
Enabling the Display of System Errors
937(1)
Creating the USysRibbons Table
938(1)
Adding Data to the USysRibbons Table
939(1)
Applying the Custom Ribbon
940(3)
Applying a Custom Ribbon to the Entire Database
940(1)
Applying a Custom Ribbon to a Form or Report
941(2)
Hiding System Objects
943(1)
Restoring the Ribbon to Its Default Settings
943(1)
Adding Additional Groups and Controls
944(2)
Executing a Macro from the Ribbon
946(1)
Practical Examples: Securing an Access 2007 Database
947(1)
Summary
947(2)
Automation: Communicating with Other Applications
949(36)
Why This
Chapter Is Important
949(1)
Defining Some Automation Terms
950(1)
Declaring an Object Variable to Reference Your Application
950(3)
Creating an Automation Object
953(1)
Declaring an Object Variable
953(1)
Manipulating an Automation Object
953(1)
Setting and Retrieving Properties
953(1)
Executing Methods
954(1)
Using Early Binding Versus Late Binding
954(2)
CreateObject and GetObject
955(1)
Controlling Excel from Access
956(4)
Closing an Excel Automation Object
960(1)
Creating a Graph from Access
961(5)
Controlling Word from Access
966(4)
Using Word to Generate a Mass Mailing
966(3)
Using Word to Overcome the Limitations of Access as a Report Writer
969(1)
Controlling PowerPoint from Access
970(4)
Automating Outlook from Access
974(2)
Controlling Access from Other Applications
976(3)
Practical Examples: Using Automation to Extend the Functionality of Your Applications
979(5)
Summary
984(1)
Exploiting the Powerof the Windows API
985(26)
Why This
Chapter Is Important
985(1)
Declaring an External Function to the Compiler
985(6)
Passing Parameters to DLL Functions
987(2)
Aliasing a Function
989(2)
Working with Constants and Types
991(2)
Working with Constants
991(1)
Working with Types
992(1)
Calling DLL Functions: Important Issues
993(1)
Using API Functions
993(15)
Manipulating the Windows Registry
994(3)
Getting Information About the Operating Environment
997(8)
Determining Drive Types and Available Drive Space
1005(3)
Practical Examples: Using Windows API Functions in Your Applications
1008(1)
Summary
1009(2)
Creating Your Own Libraries
1011(16)
Why This
Chapter Is Important
1011(1)
Preparing a Database to Be a Library
1012(1)
Structuring Code Modules for Optimal Performance
1012(1)
Writing Library Code That Runs
1013(1)
Compiling the Library
1013(1)
Creating a Reference
1013(9)
Creating a Library Reference
1014(1)
Creating a Runtime Reference
1014(3)
Creating an Explicit Reference
1017(4)
Creating a Reference Using VBA Code
1021(1)
Debugging a Library Database
1022(1)
Practical Examples: Building a Library for Your Application
1023(3)
Summary
1026(1)
Using Buildersand Wizards
1027(28)
Why This
Chapter Is Important
1027(1)
Using Builders
1027(12)
Looking at Design Guidelines
1028(1)
Creating a Builder
1028(11)
Using Wizards
1039(6)
Looking at Design Guidelines
1039(1)
Creating a Wizard
1040(4)
Getting the Wizard Ready to Go
1044(1)
Using Menu Add-Ins
1045(2)
Looking at Design Guidelines
1045(1)
Creating a Menu Add-In
1046(1)
Practical Examples: Designing Your Own Add-Ins
1047(6)
Summary
1053(2)
An Introduction to Access and the Internet/Intranet
1055(18)
Why This
Chapter Is Important
1055(1)
Saving Database Objects as HTML
1055(7)
Saving Table Data as HTML
1056(3)
Saving Query Results as HTML
1059(1)
Saving Forms as HTML
1059(1)
Saving Reports as HTML
1060(2)
Linking to HTML Files
1062(3)
Importing HTML Files
1065(1)
Saving Database Objects as XML
1066(2)
Importing XML Files
1068(1)
Practical Examples
1069(1)
Summary
1069(4)
Part V Adding Polish to Your Application
Documenting Your Application
1073(18)
Why This
Chapter Is Important
1073(1)
Preparing Your Application to Be Self-Documenting
1074(7)
Documenting Your Tables
1074(1)
Documenting Your Queries
1075(1)
Documenting Your Forms
1075(3)
Documenting Your Reports
1078(1)
Documenting Your Macros
1078(1)
Documenting Your Modules
1078(1)
Using Database Properties to Document the Overall Database
1079(2)
Using the Database Documenter
1081(5)
Using the Documenter Options
1083(2)
Producing Documentation in Other Formats
1085(1)
Using the Object Dependency Feature
1086(2)
Writing Code to Create Your Own Documentation
1088(1)
Practical Examples: Applying What You Learned
1089(1)
Summary
1089(2)
Maintaining Your Application
1091(12)
Why This
Chapter Is Important
1091(1)
Compacting Your Database
1091(8)
Using the User Interface
1093(2)
Using a Shortcut
1095(1)
Compacting Whenever a Database Closes
1095(1)
Using the CompactDatabase Method of the JetEngine Object
1096(2)
Using the CompactRepair Method of the Application Object
1098(1)
Backing Up Your Database
1099(1)
Converting an Access Database
1100(2)
Detecting Broken References
1102(1)
Practical Examples: Maintaining Your Application
1102(1)
Summary
1102(1)
Database SecurityMade Easy
1103(90)
Why This
Chapter Is Important
1103(1)
What's New in Access 2007 Security?
1103(2)
What Happened to User-Level Security?
1105(1)
Trusting a Database
1106(3)
Trusting a Database for the Current Session
1106(1)
Trusting a Database Permanently
1106(3)
Using a Database Password to Encrypt an Office Access 2007 Database
1109(1)
Removing a Password from a Database
1110(1)
Packaging, Signing, and Distributing an Access Database
1110(5)
Creating a Self-Signed Certificate
1111(1)
Creating a Signed Package
1112(1)
Extracting and Using a Signed Package
1113(2)
Using the Trust Center
1115(8)
Working with the Message Bar
1115(1)
Using Privacy Settings
1116(1)
Working with Access Macros and VBA Code
1116(1)
Working with Trusted Locations
1117(3)
Working with Trusted Publishers
1120(3)
Understanding How Databases Behave When Trusted and Untrusted
1123(1)
Working in Sandbox Mode
1123(2)
Removing User-Level Security
1125(1)
Enabling or Disabling ActiveX Controls
1125(1)
Enabling or Disabling Add-Ins
1126(1)
Adding a Trusted Publisher
1127(1)
Practical Examples: Securing an Access 2007 Database
1128(1)
Summary
1128(3)
Part VI Appendixes
A Naming Conventions
1131(6)
B Table Structures
1137(56)
The tblClients Table
1138(5)
The tblClientAddresses Table
1143(5)
The tblAddressTypes Table
1148(1)
The tblClientPhones Table
1149(2)
The tblPhoneTypes Table
1151(1)
The tblCorrespondence Table
1152(4)
The tblCorrespondenceTypes Table
1156(1)
The tblTerms Table
1157(1)
The tblContactType Table
1158(1)
The tblCompanyInfo Table
1159(5)
The tblEmployees Table
1164(4)
The tblErrorLog Table
1168(3)
The tblErrors Table
1171(1)
The tblExpenseCodes Table
1172(1)
The tblPaymentMethods Table
1173(1)
The tblPayments Table
1174(4)
The tblProjects Table
1178(4)
The tblTimeCardExpenses Table
1182(4)
The tblTimeCardHours Table
1186(4)
The tblTimeCards Table
1190(1)
The tblWorkCodes Table
1191(2)
Index 1193


Alison Balter has been programming, teaching, and writing about Access for more than 12 years, since the release of Access 95. She is the author or co-author of ten books on Access. Alison is a regular speaker at conferences worldwide. She is the founder of InfoTechnology Partners, Inc. Her clients include Shell Oil, the Archdiocese of Los Angeles, Southern California Edison, Accenture, Prudential Insurance, and the International Cinematographer's Guild.