| Introduction |
|
1 | (1) |
|
|
|
1 | (1) |
|
Conventions Used in This Book |
|
|
2 | (1) |
|
What You Don't Have to Read |
|
|
2 | (1) |
|
|
|
3 | (1) |
|
|
|
3 | (1) |
|
How This Book Is Organized |
|
|
4 | (3) |
|
Part I: Accessing Both Ends: Getting Data In and Info Out |
|
|
4 | (1) |
|
Part II: Creating Effective Queries |
|
|
4 | (1) |
|
Part III: Building Really Useful Forms |
|
|
4 | (1) |
|
Part IV: Designing Great Reports |
|
|
5 | (1) |
|
Part V: Way Cool Advanced Queries, Forms, and Reports |
|
|
5 | (1) |
|
Part VI: The Part of Tens |
|
|
5 | (2) |
|
Part I: Accessing Both Ends: Getting Data In and Info Out |
|
|
7 | (86) |
|
Getting to Know Forms and Reports |
|
|
9 | (16) |
|
Finding a Fascination with Forms |
|
|
10 | (5) |
|
Using forms to streamline data input |
|
|
11 | (1) |
|
Entering data with the Form Wizard |
|
|
12 | (2) |
|
Editing information with forms |
|
|
14 | (1) |
|
Viewing data by using forms |
|
|
15 | (1) |
|
Recognizing Why Reports Rock |
|
|
15 | (3) |
|
Using reports to show results |
|
|
15 | (1) |
|
Using reports to present data in a professional format |
|
|
16 | (1) |
|
Using reports to show data analysis |
|
|
17 | (1) |
|
Using reports to preserve the moment |
|
|
18 | (1) |
|
Seeing Why Both Forms and Reports Have a Place |
|
|
18 | (1) |
|
Understanding the Value of Queries |
|
|
19 | (2) |
|
Introducing the query concept |
|
|
20 | (1) |
|
Using queries to enhance forms and reports |
|
|
21 | (1) |
|
Queries, Forms, and Reports Basics You Must Endure |
|
|
21 | (2) |
|
Access Add-Ons and Extra Cool Tools |
|
|
23 | (2) |
|
Getting Started with Queries |
|
|
25 | (20) |
|
Understanding the Types of Queries |
|
|
25 | (8) |
|
Introducing select queries |
|
|
26 | (2) |
|
Getting to know crosstab queries |
|
|
28 | (1) |
|
|
|
29 | (1) |
|
|
|
30 | (1) |
|
Introducing append queries |
|
|
31 | (1) |
|
Getting to know delete queries |
|
|
32 | (1) |
|
Creating Queries by Using a Wizard |
|
|
33 | (5) |
|
Why you should be off to see the wizards |
|
|
33 | (1) |
|
Understanding the limitations of the wizards |
|
|
34 | (1) |
|
Creating your first query with a wizard |
|
|
34 | (4) |
|
Creating Queries in Design View |
|
|
38 | (4) |
|
Getting to know the Design view |
|
|
38 | (2) |
|
Creating an example query in Design view |
|
|
40 | (2) |
|
Modifying Queries for Better Results |
|
|
42 | (3) |
|
|
|
43 | (1) |
|
Modifying an existing query |
|
|
43 | (1) |
|
Rearranging and deleting fields in a query |
|
|
44 | (1) |
|
|
|
45 | (22) |
|
Creating Forms with the Help of a Wizard |
|
|
45 | (7) |
|
Meeting (And avoiding) the AutoForm Wizards |
|
|
46 | (2) |
|
Making friends with the Form Wizard |
|
|
48 | (3) |
|
Knowing what the wizard can't do |
|
|
51 | (1) |
|
Building Forms the Hard Way: Using Design View |
|
|
52 | (7) |
|
Introducing Design view tools |
|
|
53 | (2) |
|
Starting a form in Design view |
|
|
55 | (1) |
|
Associating a table to your form in Design view |
|
|
56 | (2) |
|
Adding fields to the form |
|
|
58 | (1) |
|
Modifying Forms You've Created |
|
|
59 | (8) |
|
Aligning objects on a form |
|
|
60 | (2) |
|
|
|
62 | (1) |
|
Spacing horizontally and vertically |
|
|
63 | (1) |
|
Shrinking a big form down to size |
|
|
64 | (3) |
|
|
|
67 | (26) |
|
Getting to Know the Types of Access Reports |
|
|
67 | (3) |
|
Introducing simple reports |
|
|
68 | (1) |
|
Using reports that group data |
|
|
69 | (1) |
|
Using reports to summarize information |
|
|
69 | (1) |
|
Creating Reports by Using a Wizard |
|
|
70 | (5) |
|
|
|
70 | (5) |
|
Understanding what the wizard doesn't know |
|
|
75 | (1) |
|
Designing Reports from Scratch |
|
|
75 | (9) |
|
Understanding the report bands |
|
|
76 | (2) |
|
Setting up the report page |
|
|
78 | (4) |
|
|
|
82 | (1) |
|
|
|
83 | (1) |
|
|
|
84 | (4) |
|
Deciding what needs to be done |
|
|
84 | (1) |
|
Moving and formatting those pesky labels |
|
|
85 | (2) |
|
Pulling the layout together to save paper |
|
|
87 | (1) |
|
Adding Data from External Linked Tables |
|
|
88 | (5) |
|
Choosing a method for accessing external data |
|
|
89 | (1) |
|
Importing or linking external data |
|
|
90 | (3) |
|
Part II: Creating Effective Queries |
|
|
93 | (76) |
|
Creating Multi-Table Queries |
|
|
95 | (18) |
|
Understanding Multi-Table Queries |
|
|
95 | (3) |
|
Understanding the benefits of multiple tables |
|
|
96 | (1) |
|
Establishing relationships between multiple tables |
|
|
97 | (1) |
|
Adding Multiple Tables to Queries |
|
|
98 | (5) |
|
Selecting multiple tables upfront |
|
|
98 | (2) |
|
Adding the tables you forgot about to your query |
|
|
100 | (1) |
|
Choosing the fields to use |
|
|
101 | (1) |
|
Making Access use the correct table |
|
|
102 | (1) |
|
Linking to External Databases in Your Queries |
|
|
103 | (3) |
|
Understanding the types of external data you can use |
|
|
103 | (1) |
|
Linking to tables in another foreign database format |
|
|
104 | (2) |
|
Knowing what you can and can't do with a linked external database |
|
|
106 | (1) |
|
Understanding Relationships in Queries |
|
|
106 | (7) |
|
Getting to know how tables are related |
|
|
107 | (1) |
|
Making sure that you choose the right relationships |
|
|
108 | (1) |
|
Setting up table relationships |
|
|
108 | (5) |
|
Modifying Data with Queries |
|
|
113 | (20) |
|
Understanding What You Can Modify with a Query |
|
|
113 | (2) |
|
Knowing what you can modify |
|
|
114 | (1) |
|
Knowing what you can't modify |
|
|
115 | (1) |
|
Being Called to Action: Data-Modifying Queries |
|
|
115 | (2) |
|
Creating New Tables with Queries |
|
|
117 | (4) |
|
Why you would want to create new tables |
|
|
117 | (1) |
|
Creating your first table with a make-table query |
|
|
118 | (3) |
|
Updating Data by Using Queries |
|
|
121 | (4) |
|
Creating an update query example |
|
|
121 | (3) |
|
Understanding the update query results |
|
|
124 | (1) |
|
Deleting Data with Queries |
|
|
125 | (2) |
|
Adding New Data with Queries |
|
|
127 | (6) |
|
|
|
127 | (4) |
|
Combining make-table and append queries |
|
|
131 | (2) |
|
Expanding Queries with SQL |
|
|
133 | (18) |
|
|
|
133 | (3) |
|
Understanding the ``S'' in SQL |
|
|
134 | (1) |
|
Putting SQL in its place (at the heart of all Access queries) |
|
|
135 | (1) |
|
Understanding How SQL Can Help |
|
|
136 | (3) |
|
Going beyond the automated query functions |
|
|
136 | (1) |
|
Creating an indexed table with SQL |
|
|
137 | (1) |
|
Modifying a table with SQL |
|
|
138 | (1) |
|
Viewing the SQL You've Already Created and Didn't Know About |
|
|
139 | (4) |
|
|
|
139 | (1) |
|
|
|
140 | (1) |
|
Seeing the results in Datasheet view |
|
|
141 | (1) |
|
Going back to Design view |
|
|
142 | (1) |
|
Getting Your Feet Wet with Simple SQL Statements |
|
|
143 | (2) |
|
Making Useful SQL Statements |
|
|
145 | (3) |
|
Updating records with SQL |
|
|
145 | (1) |
|
Creating and filling tables using SQL |
|
|
146 | (1) |
|
Summarizing values using SQL |
|
|
147 | (1) |
|
Deleting records using SQL |
|
|
147 | (1) |
|
|
|
148 | (3) |
|
Dealing with Quarrelsome Queries |
|
|
151 | (18) |
|
Troubleshooting Queries That Don't Quite Work |
|
|
151 | (6) |
|
Understanding the clues Access gives you |
|
|
152 | (1) |
|
|
|
152 | (3) |
|
Using Datasheet view as a troubleshooting tool |
|
|
155 | (2) |
|
Troubleshooting Sassy SQL |
|
|
157 | (3) |
|
Figuring out what went wrong |
|
|
157 | (1) |
|
|
|
158 | (1) |
|
Things to watch out for in SQL queries |
|
|
158 | (1) |
|
Simplifying your SQL to find the problem |
|
|
159 | (1) |
|
Avoiding Improper Relationships |
|
|
160 | (3) |
|
Understanding how bad relationships can mess you up |
|
|
160 | (2) |
|
Making sure your relationships make sense |
|
|
162 | (1) |
|
Correcting relationships that don't work |
|
|
162 | (1) |
|
Junking Joins That Don't Join |
|
|
163 | (2) |
|
Understanding why default joins may not work |
|
|
163 | (1) |
|
|
|
163 | (2) |
|
Steering Around Empty Query Results |
|
|
165 | (1) |
|
Understanding some of the causes of empty query results |
|
|
165 | (1) |
|
Correcting a query that doesn't return any data |
|
|
165 | (1) |
|
Preventing Data Destruction |
|
|
166 | (3) |
|
|
|
166 | (1) |
|
Avoiding destructive query results |
|
|
166 | (1) |
|
What to do if your database seems to be kaput |
|
|
167 | (2) |
|
Part III: Building Really Useful Forms |
|
|
169 | (50) |
|
Building Better Forms by Using Controls |
|
|
171 | (20) |
|
Getting to Know the Controls |
|
|
171 | (1) |
|
Common Controls You Can Use |
|
|
172 | (2) |
|
|
|
173 | (1) |
|
|
|
174 | (1) |
|
|
|
174 | (1) |
|
Adding Controls to Your Forms |
|
|
174 | (9) |
|
Adding list boxes to your forms |
|
|
176 | (3) |
|
|
|
179 | (2) |
|
Using check boxes on forms |
|
|
181 | (1) |
|
Adding labels to toggle buttons |
|
|
182 | (1) |
|
Incorporating ActiveX Controls |
|
|
183 | (3) |
|
Modifying the Characteristics of Controls |
|
|
186 | (5) |
|
An example of setting default values |
|
|
186 | (2) |
|
Blocking access to certain controls |
|
|
188 | (1) |
|
Improving controls by using tab order |
|
|
188 | (3) |
|
Using Multiple Tables in Forms |
|
|
191 | (14) |
|
Understanding Forms and Subforms |
|
|
191 | (2) |
|
Understanding the needs subforms fill |
|
|
192 | (1) |
|
Getting to know the subform place |
|
|
192 | (1) |
|
Adding Fields from Multiple Tables to Your Forms |
|
|
193 | (4) |
|
Verifying relationships and adding fields |
|
|
194 | (1) |
|
Adding subforms with the Form Wizard |
|
|
195 | (2) |
|
Adding a subform after the fact |
|
|
197 | (1) |
|
Choosing the Best Subform View |
|
|
197 | (4) |
|
Making the switch from Datasheet view to another subform view |
|
|
197 | (2) |
|
Introducing your subform view options |
|
|
199 | (2) |
|
|
|
201 | (1) |
|
Navigating Records in Multi-Table Forms |
|
|
202 | (3) |
|
Choosing the right navigator bar |
|
|
202 | (1) |
|
Finding records with filters |
|
|
203 | (2) |
|
|
|
205 | (14) |
|
Preventing Invalid Data with Input Masks |
|
|
205 | (4) |
|
Setting up an input mask with the wizard |
|
|
206 | (1) |
|
Making an input mask from scratch |
|
|
207 | (2) |
|
Limiting a User to Specific Values with Validation Rules |
|
|
209 | (4) |
|
Setting up your own validation rules |
|
|
209 | (2) |
|
Remembering Access validation rules |
|
|
211 | (1) |
|
Quick validation rules you can use |
|
|
212 | (1) |
|
Preventing Users from Changing Records |
|
|
213 | (1) |
|
Looking Out for Poorly Formatted Data |
|
|
214 | (5) |
|
|
|
214 | (2) |
|
|
|
216 | (3) |
|
Part IV: Designing Great Reports |
|
|
219 | (48) |
|
Adding Fancy Touches to Reports |
|
|
221 | (20) |
|
Adding Descriptive Titles to Your Reports |
|
|
221 | (3) |
|
Getting title basics down |
|
|
222 | (1) |
|
Modifying existing titles |
|
|
223 | (1) |
|
Formatting your report titles |
|
|
224 | (1) |
|
Getting Dynamic with Your Titles |
|
|
224 | (4) |
|
Understanding how to use expressions in your titles |
|
|
225 | (1) |
|
Using expressions to create dynamic titles |
|
|
226 | (1) |
|
Using properties to control your expressions |
|
|
227 | (1) |
|
Getting rid of the .mdb document extension |
|
|
228 | (1) |
|
Coming up with Page Title Ideas |
|
|
228 | (2) |
|
Adding Dates and Page Numbers |
|
|
230 | (2) |
|
Choosing the right place for dates and numbers |
|
|
230 | (1) |
|
Getting fancy with date displays |
|
|
230 | (2) |
|
Discovering some neat page number tricks |
|
|
232 | (1) |
|
Making Records Easier to Read with Alternating Bands of Color |
|
|
232 | (5) |
|
Step 1: Picking colors and translating them to hex |
|
|
233 | (2) |
|
Step 2: Writing code to apply your color bands |
|
|
235 | (2) |
|
|
|
237 | (4) |
|
Creating Reports that Summarize Data |
|
|
241 | (16) |
|
Discovering How to Group Records |
|
|
241 | (8) |
|
Understanding your record-grouping options |
|
|
242 | (1) |
|
Creating your first report grouping |
|
|
243 | (3) |
|
Making sure you get the right groups |
|
|
246 | (3) |
|
Adding Subtotals and Totals |
|
|
249 | (2) |
|
Understanding how subtotals and totals work |
|
|
249 | (1) |
|
Adding totals to groups and reports |
|
|
250 | (1) |
|
Using Some Advanced Summarizing Methods |
|
|
251 | (6) |
|
|
|
252 | (2) |
|
|
|
254 | (1) |
|
Finding the largest, smallest, and average values |
|
|
255 | (1) |
|
Trimming off extra spaces |
|
|
255 | (1) |
|
|
|
256 | (1) |
|
|
|
257 | (10) |
|
|
|
257 | (3) |
|
Figuring out whether the report is really wrong |
|
|
258 | (1) |
|
Figuring out what's wrong with the report |
|
|
258 | (2) |
|
Avoiding Bad Report Layouts |
|
|
260 | (4) |
|
Considering the purpose of your report |
|
|
260 | (1) |
|
Avoiding text box data overflow |
|
|
261 | (1) |
|
|
|
262 | (1) |
|
Formatting data in reports |
|
|
263 | (1) |
|
Eliminating Unnecessary Labels for Tighter Reports |
|
|
264 | (3) |
|
Deciding whether you really need all those labels |
|
|
264 | (1) |
|
|
|
265 | (1) |
|
|
|
265 | (2) |
|
Part V: Way Cool Advanced Queries, Forms, and Reports |
|
|
267 | (96) |
|
Tricks for Finding Data with Queries |
|
|
269 | (14) |
|
Finding Just the Data You Need |
|
|
270 | (7) |
|
Getting to know the operators |
|
|
270 | (1) |
|
Selecting a range of records |
|
|
271 | (4) |
|
Finding data that's close but not exact |
|
|
275 | (2) |
|
Creating Queries That Ask What to Find |
|
|
277 | (2) |
|
Understanding parameter queries |
|
|
277 | (1) |
|
Building your very own parameter query |
|
|
278 | (1) |
|
Excluding Data You Don't Want |
|
|
279 | (4) |
|
Eliminating duplicates from results |
|
|
280 | (1) |
|
Finding duplicates with SQL queries |
|
|
280 | (1) |
|
Modifying join properties to get the results you want |
|
|
281 | (2) |
|
Tricks for Updating with Queries |
|
|
283 | (12) |
|
Creating New Fields with a Query |
|
|
283 | (3) |
|
Deciding whether using a query to add fields is worth it |
|
|
284 | (1) |
|
Adding your first field with a query |
|
|
284 | (2) |
|
Adding Default Values by Using a Query |
|
|
286 | (2) |
|
Getting to know what you can add |
|
|
286 | (1) |
|
Adding default values to your very first field |
|
|
286 | (1) |
|
Making sure you don't override real data |
|
|
287 | (1) |
|
|
|
288 | (2) |
|
Determining whether to use a query for your calculations |
|
|
288 | (1) |
|
Writing your first query calculations |
|
|
288 | (2) |
|
Updating Records by Using Data from Another Table |
|
|
290 | (5) |
|
Choosing the right type of query for your updates |
|
|
291 | (1) |
|
Updating data in one table with data from another without any conditions |
|
|
291 | (3) |
|
Making sure the right data is updated |
|
|
294 | (1) |
|
Killer Ways to Improve Forms |
|
|
295 | (20) |
|
Prequalifying the Data Entered |
|
|
295 | (7) |
|
|
|
296 | (5) |
|
|
|
301 | (1) |
|
Crafting Forms That Are Easier to Use |
|
|
302 | (13) |
|
Making data appear in a logical order |
|
|
303 | (1) |
|
Controlling the order for displaying records |
|
|
303 | (1) |
|
Adding command buttons for common tasks |
|
|
304 | (5) |
|
Creating a switchboard for better usability |
|
|
309 | (1) |
|
Creating your own switchboard |
|
|
309 | (2) |
|
Presenting data for information only |
|
|
311 | (1) |
|
|
|
312 | (1) |
|
Giving users help with text prompts |
|
|
312 | (3) |
|
Expert Methods for Sharing Reports |
|
|
315 | (16) |
|
Sharing Report Data with Microsoft Excel |
|
|
315 | (5) |
|
Laying out reports so that they work in Excel |
|
|
316 | (2) |
|
Exporting your report data to Excel |
|
|
318 | (2) |
|
Sending Reports to Microsoft Word |
|
|
320 | (3) |
|
Sending report data to Word |
|
|
320 | (1) |
|
Using the Word Mail Merge feature with Access |
|
|
321 | (2) |
|
Using OLE Objects in Reports |
|
|
323 | (8) |
|
Understanding OLE objects |
|
|
323 | (1) |
|
|
|
323 | (2) |
|
Adding your first OLE object to your Access database |
|
|
325 | (3) |
|
Troubleshooting OLE objects so that they actually work |
|
|
328 | (3) |
|
Making Reports Look Better |
|
|
331 | (14) |
|
Enhancing the Appearance of Important Information |
|
|
331 | (6) |
|
Sorting report data for clarity |
|
|
332 | (2) |
|
Making data seem to jump out |
|
|
334 | (3) |
|
Printing on Standard Labels |
|
|
337 | (2) |
|
Keeping Related Data Together |
|
|
339 | (3) |
|
Understanding why Access splits records |
|
|
340 | (1) |
|
Tricks you can use to avoid splitting grouped records |
|
|
340 | (1) |
|
Tricks you can use to avoid splitting sorted records |
|
|
341 | (1) |
|
Adding Your Logo to Reports |
|
|
342 | (3) |
|
Adding Efficiency with Great Tools |
|
|
345 | (18) |
|
Using Cool Tools to Document Everything |
|
|
346 | (5) |
|
Comparing Access databases with CompareWiz |
|
|
346 | (1) |
|
Comparing the data in Access databases with CompareDataWiz |
|
|
347 | (1) |
|
Checking out your queries with Query Tree Editor |
|
|
348 | (2) |
|
Fixing database corruption with AccessFIX |
|
|
350 | (1) |
|
|
|
351 | (4) |
|
Optimizing your Access database with SSW Performance Pro! |
|
|
351 | (2) |
|
Enhancing your Access forms with Selector |
|
|
353 | (1) |
|
Creating better forms with ShrinkerStretcher |
|
|
353 | (1) |
|
Creating forms from existing forms with OmniForm |
|
|
354 | (1) |
|
Using Software to Share Stuff |
|
|
355 | (8) |
|
Using Snapshot Viewer for Access to send a report to non-Access users |
|
|
355 | (1) |
|
Linking Access and PowerPoint by using Take-Off DATAPOINT |
|
|
356 | (1) |
|
Sending data to QuickBooks with accessBooks Updater |
|
|
357 | (1) |
|
Bringing QuickBooks data to Access with Digital Cows Deluxe Exporter |
|
|
358 | (1) |
|
Bringing data from Excel with Excel Import Assistant |
|
|
359 | (2) |
|
Merging data with Word by using Word Link for Access |
|
|
361 | (2) |
|
Part VI: The Part of Tens |
|
|
363 | (12) |
|
Ten Great Access Sites Online |
|
|
365 | (6) |
|
|
|
366 | (1) |
|
|
|
366 | (1) |
|
Easy Access Database Directory |
|
|
366 | (1) |
|
|
|
367 | (1) |
|
|
|
367 | (1) |
|
Microsoft Access Database Solutions |
|
|
367 | (1) |
|
Microsoft Office Online Access |
|
|
368 | (1) |
|
MSDN --- Microsoft Developer Network |
|
|
368 | (1) |
|
|
|
369 | (1) |
|
|
|
369 | (1) |
|
Office Solutions Development |
|
|
369 | (1) |
|
|
|
369 | (1) |
|
|
|
370 | (1) |
|
Ten Things to Know About Queries (That Also Help You with Forms and Reports) |
|
|
371 | (4) |
|
|
|
371 | (1) |
|
Select Queries Are Always Safe |
|
|
372 | (1) |
|
All Queries Are SQL Queries |
|
|
372 | (1) |
|
Action Queries Can Harm Your Data |
|
|
372 | (1) |
|
You Need Joins to Use Multiple Tables in Queries |
|
|
372 | (1) |
|
Queries Select All Records Unless You Specify Criteria |
|
|
373 | (1) |
|
Datasheet View Shows Results without Running the Query |
|
|
373 | (1) |
|
Make-Table Queries Always Begin with an Empty Table |
|
|
373 | (1) |
|
Queries Need a Record Source |
|
|
373 | (1) |
|
Delete Queries Are Forever |
|
|
374 | (1) |
| Index |
|
375 | |