81 Part 2 Building a Microsoft Access Desktop Application Chapter 4 Creating Your Database and Tables 85 Creating a New Database.. This sample database demonstrates how to build a client
Trang 2One Microsoft Way
Redmond, Washington 98052-6399
Copyright © 2004 by John L Viescas
All rights reserved No part of the contents of this book may be reproduced or transmitted in any form
or by any means without the written permission of the publisher
Library of Congress Cataloging-in-Publication Data
Distributed in Canada by H.B Fenn and Company Ltd
A CIP catalogue record for this book is available from the British Library
Microsoft Press books are available through booksellers and distributors worldwide For further tion about international editions, contact your local Microsoft Corporation office or contact MicrosoftPress International directly at fax (425) 936-7329 Visit our Web site at www.microsoft.com/mspress
informa-Send comments to mspinput@microsoft.com.
ActiveX, FoxPro, FrontPage, InfoPath, Microsoft, Microsoft Internet Explorer (logo only), MicrosoftPress, MSDN, MS-DOS, MSN, the Office logo, OpenType, Outlook, PivotChart, PivotTable, PowerPoint,SharePoint, Visual Basic, Visual C# , Visual C++ , Visual FoxPro, Visual J#, Visual Studio, the
Microsoft Visual Tools eMbedded logo, Windows, and Windows NT are either registered trademarks or
trademarks of Microsoft Corporation in the United States and/or other countries Other product and
company names mentioned herein may be the trademarks of their respective owners
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places,and events depicted herein are fictitious No association with any real company, organization, product,domain name, e-mail address, logo, person, place, or event is intended or should be inferred
Acquisitions Editor: Alex Blanton
Project Editor: Sandra Haynes
Series Editor: Sandra Haynes
Technical Editor: Curt Philips
Body Part No X09-71422
Trang 3And for mom I finished this book just in time for your 90th birthday I
hope I’ve made you proud.
Trang 5Creating and Working
with Simple Queries 219
Chapter 11Building a Form 397Chapter 12
Customizing a Form 433
Chapter 13Advanced Form Design 481Chapter 14
Using Reports 523
Chapter 15Constructing a Report 537Chapter 16
Advanced Report Design 555
Part 4
Designing an Access Project
Chapter 17Building Tables in an Access Project 599
Chapter 18Building Queries in anAccess Project 637Chapter 19
Designing Forms in an Access Project 685
Chapter 20Building Reports in anAccess Project 701
Trang 6Automating Your Application
with Visual Basic 857
Creating Static and
Dynamic Web Pages 985
Chapter 30Securing Your Database 1163Chapter 31
Distributing Your Application 1203
Part 8
Appendix
AppendixInstalling Microsoft Office 1223
Part 9
Articles
Article 1Understanding SQL A1
Article 2Exporting Data A45Article 3
Visual Basic Function Reference A49
Article 4Internet Explorer Web Page Color Names A59
Trang 7Acknowledgments xxiii
We’d Like to Hear from You! xxv
About the CD xxvii
What’s on the CD xxvii
Sample Applications xxviii
Using the CD xxixi
System Requirements xxix
Support Information xxix
Conventions and Features Used in This Book xxxi
Text Conventions xxxi
Design Conventions xxxi
Syntax Conventions xxxiii
Introduction xxxv
Microsoft Access Today xxxvi
About This Book xxxvii
Part 1 Understanding Microsoft Access Chapter 1 What Is Microsoft Access? 3 What Is a Database? 3
Relational Databases 4
Database Capabilities 5
Microsoft Access as an RDBMS 6
Data Definition and Storage 6
Data Manipulation 8
Data Control 11
Microsoft Access as an Application Development System 11
Deciding to Move to Database Software 13
Chapter 2 The Many Faces of Microsoft Access 17 The Architecture of Microsoft Access 17
Exploring a Desktop Database—Housing Reservations 19
Tables 23
Queries 27
Forms 29
Reports 34
Data Access Pages 38
Macros 43
Trang 8Organizing Your Objects 46
Exploring a Project File—LawTrack Contacts 48
Tables 48
Views, Functions, and Stored Procedures 50
The Many Faces of Microsoft Access 51
Chapter 3 Designing Your Database Application 53 Application Design Fundamentals 53
Step 1: Identifying Tasks 54
Step 2: Charting Task Flow 54
Step 3: Identifying Data Elements 55
Step 4: Organizing the Data 55
Step 5: Designing a Prototype and a User Interface 55
Step 6: Constructing the Application 55
Step 7: Testing, Reviewing, and Refining 56
An Application Design Strategy 56
Analyzing the Tasks 58
Selecting the Data 61
Organizing Tasks 63
Data Analysis 64
Choosing the Database Subjects 64
Mapping Subjects to Your Database 66
Database Design Concepts 67
Waste Is the Problem 67
Normalization Is the Solution 69
Efficient Relationships Are the Result 77
When to Break the Rules 79
Improving Performance of Critical Tasks 79
Capturing Point-In-Time Data 80
Creating Report Snapshot Data 81
Part 2 Building a Microsoft Access Desktop Application Chapter 4 Creating Your Database and Tables 85 Creating a New Database 86
Using a Database Template to Create a Database 86
Creating a New Empty Database 90
Creating Your First Simple Table by Entering Data 92
Creating a Table Using the Table Wizard 94
Creating a Table in Design View 100
Trang 9Understanding Field Data Types 102
Setting Field Properties 104
Completing the Fields in the Companies Table 110
Defining Simple Field Validation Rules 111
Defining Input Masks 114
Defining a Primary Key 118
Defining a Table Validation Rule 118
Understanding Other Table Properties 121
Defining Relationships 123
Defining Your First Relationship 126
Creating a Relationship on Multiple Fields 128
Adding Indexes 130
Single Field Indexes 130
Multiple-Field Indexes 131
Setting Table Design Options 133
Printing a Table Definition 136
Database Limitations 137
Chapter 5 Modifying Your Table Design 139 Before You Get Started 140
Making a Backup Copy 140
Checking Object Dependencies 142
Deleting Tables 143
Renaming Tables 145
Changing Field Names 146
Moving Fields 150
Inserting Fields 152
Copying Fields 154
Deleting Fields 156
Changing Data Attributes 157
Changing Data Types 157
Changing Data Lengths 162
Dealing with Conversion Errors 163
Changing Other Field Properties 163
Reversing Changes 165
Using the Table Analyzer Wizard 165
Taking a Look at Lookup Properties 171
Changing the Primary Key 176
Compacting Your Database 177
Chapter 6 Importing and Linking Data 179 A Word About Open Database Connectivity (ODBC) 179
Trang 10Importing dBASE Files 182
Importing Paradox Files 184
Importing SQL Tables 186
Importing Access Objects 191
Importing Spreadsheet Data 192
Preparing a Spreadsheet 193
Importing a Spreadsheet 194
Fixing Errors 197
Importing Text Files 199
Preparing a Text File 199
Importing a Text File 202
Fixing Errors 206
Modifying Imported Tables 208
Linking Files 208
Security Considerations 209
Performance Considerations 209
Linking Access Tables 211
Linking dBASE and Paradox Files 213
Linking Text and Spreadsheet Files 213
Linking SQL Tables 214
Modifying Linked Tables 216
Unlinking Linked Tables 216
Using the Linked Table Manager 216
Chapter 7 Creating and Working with Simple Queries 219 Selecting Data from a Single Table 221
Specifying Fields 223
Setting Field Properties 224
Entering Selection Criteria 226
Using Expressions 233
Using the Expression Builder 240
Specifying Field Names 245
Sorting Data 247
Testing Validation Rule Changes 249
Checking a New Field Validation Rule 249
Checking a New Table Validation Rule 250
Working in Query Datasheet View 252
Moving Around and Using Keyboard Shortcuts 252
Working with Subdatasheets 254
Changing Data 257
Working with Hyperlinks 264
Sorting and Searching for Data 269
Trang 11Building Complex Queries 277
Selecting Data from Multiple Tables 277
Creating Inner Joins 278
Building a Query on a Query 284
Using Outer Joins 287
Using a Query Wizard 293
Summarizing Information with Totals Queries 296
Totals Within Groups 296
Selecting Records to Form Groups 301
Selecting Specific Groups 302
Building Crosstab Queries 302
Partitioning Data in a Crosstab Query 306
Using Query Parameters 308
Customizing Query Properties 310
Controlling Query Output 311
Working with Unique Records and Values 312
Defining a Subdatasheet 315
Other Query Properties 318
Editing and Creating Queries in SQL View 319
Limitations on Using Select Queries to Update Data 323
Creating PivotTables and PivotCharts from Queries 324
Building a Query for a PivotTable 325
Designing a PivotTable 328
Designing a PivotChart 332
Chapter 9 Modifying Data with Action Queries 337 Updating Groups of Rows 337
Testing with a Select Query 338
Converting a Select Query to an Update Query 339
Running an Update Query 340
Updating Multiple Fields 342
Creating a New Table with a Make-Table Query 346
Creating a Make-Table Query 346
Running a Make-Table Query 350
Inserting Data from Another Table 352
Creating an Append Query 353
Running an Append Query 355
Deleting Groups of Rows 356
Testing with a Select Query 356
Using a Delete Query 358
Deleting Inactive Data 359
Troubleshooting Action Queries 360
Solving Common Action Query Errors and Problems 360
Trang 12Creating Forms and Reports in a Desktop Application
Chapter 10
Uses of Forms 365
A Tour of Forms 366
Headers, Detail Sections, and Footers 366
Multiple-Page Forms 367
Continuous Forms 368
Subforms 369
Pop-Up Forms 370
Modal Forms 371
Special Controls 372
PivotTables and PivotCharts 379
Moving Around on Forms and Working with Data 380
Viewing Data 381
Adding Records and Changing Data 384
Searching for and Sorting Data 391
Performing a Simple Search 392
Performing a Quick Sort on a Form Field 392
Adding a Filter to a Form 392
Printing Forms 394
Chapter 11 Building a Form 397 Forms and Object-Oriented Programming 397
Starting from Scratch—A Simple Input Form 400
Building a New Form with Design Tools 400
Building a Simple Input Form for the tblCompanies Table 411
Customizing Colors and Checking Your Design Results 418
Working with Form Wizards 420
Creating the Basic Products Form with a Form Wizard 420
Modifying the Products Form 424
Simplifying Data Input with a Form 426
Taking Advantage of Combo Boxes and List Boxes 426
Using Toggle Buttons, Check Boxes, and Option Buttons 430
Chapter 12 Customizing a Form 433 Aligning and Sizing Controls 433
Sizing Controls to Fit Content 435
Adjusting Control Layout 439
“Snapping” Controls to the Grid 440
Trang 13Lines and Rectangles 444
Colors and Special Effects 447
Fonts 449
Setting Control Properties 451
Formatting Properties 451
Adding a Scroll Bar 461
Enabling and Locking Controls 462
Setting the Tab Order 462
Adding a Smart Tag 463
Understanding Other Control Properties 465
Setting Form Properties 469
Allowing Different Views 469
Setting Navigation Options 470
Defining a Pop-Up and/or Modal Form 471
Controlling Edits, Deletions, Additions, and Filtering 472
Defining Window Controls 472
Setting the Border Style 473
Understanding Other Form Properties 474
Setting Form and Control Defaults 477
Changing Control Defaults 477
Working with AutoFormat 478
Defining a Template Form 479
Chapter 13 Advanced Form Design 481 Basing a Form on a Multiple-Table Query 482
Creating a Many-to-One Form 482
Creating and Embedding Subforms 487
Specifying the Subform Source 488
Designing the Innermost Subform 490
Designing the First Level Subform 494
Embedding a Subform 495
Specifying the Main Form Source 499
Creating the Main Form 499
Creating a Subdatasheet Subform 502
Displaying Values in an Option Group 504
Using Conditional Formatting 506
Working with the Tab Control 509
Creating Multiple-Page Forms 513
Introducing ActiveX Controls—The Calendar Control 515
Working with PivotChart Forms 518
Building a PivotChart Form 519
Embedding a Linked PivotChart 520
Trang 14Using Reports 523
Uses of Reports 523
A Tour of Reports 524
Print Preview—A First Look 525
Headers, Detail Sections, Footers, and Groups 526
Subreports 528
Objects in Reports 530
Printing Reports 532
Print Setup 532
Chapter 15 Constructing a Report 537 Starting from Scratch—A Simple Report 537
Building the Report Query 538
Designing the Report 539
Sorting and Grouping Information 541
Completing the Report 542
Using a Report Wizard 546
Selecting a Report Type 546
Specifying Wizard Options 547
Viewing the Result 552
Chapter 16 Advanced Report Design 555 Building a Query for a Complex Report 556
Creating the Basic Facility Occupancy by Date Report 557
Defining the Sorting and Grouping Criteria 559
Setting Section and Report Properties 562
Section Properties 562
Report Properties 564
Using Calculated Values 572
Adding the Print Date and Page Numbers 572
Performing Calculations 573
Hiding Redundant Values and Concatenating Text Strings 578
Calculating Percentages 580
Using Running Sum 581
Taking Advantage of Conditional Formatting 584
Creating and Embedding a Subreport 585
Understanding Subreport Challenges 586
Building a Report with a Subreport 589
Adding a PivotChart to a Report 592
Designing the PivotChart Form 592
Embedding a PivotChart in a Report 593
Trang 15Designing an Access Project
Chapter 17
Creating a New Project File 600
Building a New SQL Server Database 600
Connecting to an Existing SQL Server Database 603
Creating a Table in Design View 607
Defining Columns 608
Column Data Types 610
Completing the Columns in the Companies Table 614
Understanding Column Properties 616
Defining a Primary Key 618
Adding Indexes 619
Creating Additional Tables in Contact Tracking 623
Defining Check Constraints 625
Creating Additional Constraint Expressions 628
Defining Relationships 629
Defining Relationships in Table Design View 629
Defining Relationships Using Database Diagrams 632
Setting Table Design Options 635
Chapter 18 Building Queries in an Access Project 637 Building Queries Using the Query Designer 640
Understanding the Query Designer 640
Working with Views 650
Working with In-Line Functions 655
Working with Stored Procedures 661
Building Queries Using a Text Editor 665
Building a Text Stored Procedure 667
Building a Text Scalar Function 681
Building a Text Table-Valued Function 683
Chapter 19 Designing Forms in an Access Project 685 Understanding Form Differences in an Access Project 685
Choosing Option Settings 687
Setting Project Form Properties 689
Setting Recordset Type 692
Understanding Max Records 692
Working with Server Filters 694
Setting Input Parameters 697
Trang 16Building Reports in an Access Project 701
Understanding Report Differences in an Access Project 701
Setting Project Report Properties 702
Working with Server Filters 703
Working with Input Parameters 705
Part 5 Automating an Access Application Chapter 21 Understanding Event Processing 713 Access as a Windows Event-Driven Application 713
Understanding Events in Windows 713
Leveraging Access Events to Build an Application 714
Summary of Form and Report Events 715
Opening and Closing Forms and Reports 716
Changing Data 717
Detecting Focus Changes 720
Detecting Filters Applied to Forms 722
Trapping Keyboard and Mouse Events 722
Detecting Changes in PivotTables and PivotCharts 725
Printing 727
Trapping Errors 728
Detecting Timer Expiration 728
Understanding Event Sequence and Form Editing 728
Summary of Macro Actions 731
Opening and Closing Access Objects 732
Printing Data 735
Executing a Query 736
Testing Conditions and Controlling Action Flow 737
Setting Values 738
Searching for Data 739
Building a Custom Menu and Executing Menu Commands 740
Controlling Display and Focus 741
Informing the User of Actions 743
Renaming, Copying, Deleting, Saving, Importing, and Exporting Objects 743
Running Another Application 745
The Macro Design Facility—An Overview 745
Working with the Macro Design Window 745
Defining Multiple Actions 749
Grouping Macros 751
Conditional Expressions 753
Trang 17Understanding Visual Basic Fundamentals 757
The Visual Basic Development Environment 758
Modules 758
The Visual Basic Editor Window 760
Working with Visual Basic Debugging Tools 766
Variables and Constants 774
Data Types 775
Variable and Constant Scope 777
Declaring Constants and Variables 778
Const Statement 778
Dim Statement 779
Enum Statement 782
Event Statement 783
Private Statement 784
Public Statement 786
ReDim Statement 787
Static Statement 788
Type Statement 789
Collections, Objects, Properties, and Methods 791
The Access Application Architecture 791
The Data Access Objects (DAO) Architecture 793
The ActiveX Data Objects (ADO) Architecture 795
Referencing Collections, Objects, and Properties 798
Assigning an Object Variable—Set Statement 801
Object Methods 803
Functions and Subroutines 812
Function Statement 812
Sub Statement 814
Understanding Class Modules 815
Property Get 816
Property Let 818
Property Set 820
Controlling the Flow of Statements 823
Call Statement 823
Do…Loop Statement 824
For…Next Statement 825
For Each…Next Statement 826
GoTo Statement 826
If…Then…Else Statement 827
RaiseEvent Statement 828
Select Case Statement 829
Stop Statement 830
While…Wend Statement 830
With…End With Statement 831
Trang 18DoCmd Object 832
Executing a Menu Command 833
Actions with Visual Basic Equivalents 834
Trapping Errors 834
On Error Statement 834
Some Complex Visual Basic Examples 836
A Procedure to Randomly Load Data 836
A Procedure to Examine All Error Codes 850
Chapter 23 Automating Your Application with Visual Basic 857 Why Aren’t We Using Macros? 857
When to Use Macros 858
When to Use Visual Basic 858
Assisting Data Entry 859
Filling In Related Data 859
Handling the NotInList Event 863
Fixing an E-Mail Hyperlink 867
Providing a Graphical Calendar 867
Working with Linked Photos 872
Validating Complex Data 878
Checking for Possible Duplicate Names 878
Testing for Related Records When Deleting a Record 880
Verifying a Prerequisite 881
Maintaining a Special Unique Value 883
Checking for Overlapping Data 884
Controlling Tabbing on a Multiple-Page Form 886
Automating Data Selection 887
Working with a Multiple-Selection List Box 888
Providing a Custom Query By Form 891
Selecting from a Summary List 898
Filtering One List with Another 899
Linking to Related Data in Another Form or Report 902
Linking Forms Using a Filter 902
Linking to a Report Using a Filter 903
Synchronizing Two Forms Using a Class Event 906
Automating Complex Tasks 909
Triggering a Data Task from a Related Form 909
Linking to a Related Task 913
Calculating a Stored Value 917
Automating Reports 917
Allowing for Used Mailing Labels 917
Drawing on a Report 920
Trang 19The Finishing Touches 927
Creating Custom Menus and Toolbars 927
Understanding the Customize Toolbar Facility 928
Creating a Custom Form Toolbar 931
Creating a Custom Form Menu Bar 936
Creating Custom Shortcut Menus 940
Setting Form, Form Control, and Report Menu and Toolbar Properties 942
Fine-Tuning with the Performance Analyzer Wizard 944
Disabling Form Design View 946
Defining Switchboard Forms 947
Designing a Switchboard Form from Scratch 947
Using the Switchboard Manager to Design Switchboard Forms 949
Controlling How Your Application Starts and Runs 952
Setting Startup Properties for Your Database 952
Starting and Stopping Your Application 953
Creating an AutoKeys Macro 956
Performing a Final Visual Basic Compile 957
Part 6 Linking Access and the Web Chapter 25 Publishing Data on the Web 961 Working with the Web 961
Understanding HTML 962
Introducing XML 969
Maintaining Static Web Pages 971
Creating Dynamic Web Pages 973
Delivering Dynamic Query Results 973
Processing Live Data with HTML Forms 975
Sharing Your Data with SharePoint 978
Introducing SharePoint 978
Office and SharePoint 979
Discovering the Possibilities 979
Viewing Static HTML Pages 979
Exploring Active Server Pages 981
Looking at Data Access Pages 982
Chapter 26 Creating Static and Dynamic Web Pages 985 Creating a Static HTML Document 985
Improving the Look of Exported Data in HTML 988
Generating an HTML Page from an Access Report 995
Trang 20Defining a System Data Source 1001
Exporting Access Data to an Active Server Page 1004
Programming Active Server Pages 1006
Chapter 27 Building Data Access Pages 1015 Introducing Data Access Pages 1016
Underlying Structure of a Data Access Page 1016
Usefulness and Limitations 1017
Types of Pages You Can Create 1018
Designing Data Access Pages 1021
Setting Options for Data Access Pages 1021
Creating Pages Using the Wizards 1023
Understanding the Data Access Page Design Facility 1028
Modifying a Wizard-Generated Data Access Page 1038
Generating Data Access Pages from Forms and Reports 1047
Creating a Data Access Page in Design View 1055
Automating Data Access Pages 1065
Using the Microsoft Script Editor with Data Access Pages 1065
Creating Scripts for Data Access Pages 1068
Updating Data Access Page Links and Connections 1081
Updating Links from Access to Data Access Pages 1081
Updating Connections 1082
Updating Links and Connections from Within Visual Basic 1088
Uploading Your Pages to a Web Server 1090
Copying Pages Using the Windows XP My Web Sites 1091
Publishing Pages Using FTP 1093
Chapter 28 Working with XML and SharePoint 1095 Exploring XML 1095
Well-Formed XML 1096
Understanding XML File Types 1097
Using XML in Microsoft Access 1105
Exporting and Importing XML from the User Interface 1105
Importing and Exporting XML in Visual Basic 1115
Working with SharePoint 1119
Using SharePoint from Access 1121
Using Access from SharePoint 1126
Trang 21After Completing Your Application
Chapter 29
Benefits of the Client/Server Architecture 1134
Deciding When to Upsize 1135
Deciding on a Strategy 1137
Upsizing Using the Import Facility 1137
Using the Upsizing Wizard 1138
Preparing Your Desktop Database 1138
General Upsizing Considerations 1138
Preparing Your Tables 1139
Modifying Queries 1141
Changing Forms and Reports 1142
Modifying Your Code 1143
Using the Upsizing Wizard 1147
Ensuring That Your Server Is Started 1148
Running the Wizard 1149
Starting Over If the Wizard Fails 1154
Correcting the Upsize Result 1155
Adding Relationships and Constraints and Fixing Indexes 1155
Correcting Query Problems 1156
Fixing Parameters in Forms and Reports 1159
Fixing Combo Boxes and List Boxes That Use a Large Row Source 1161
Chapter 30 Securing Your Database 1163 Securing a Desktop Database 1163
Access Security Architecture 1164
Users, Groups, and Permissions 1165
Using the Security Wizard 1170
Setting Up Your Secured Database 1182
Security Considerations in a Project File 1195
Understanding Macro Security 1197
Chapter 31 Distributing Your Application 1203 Using Linked Tables in a Desktop Database 1204
Taking Advantage of the Database Splitter Utility 1204
Creating Startup Code to Verify and Correct Linked Table Connections 1206
Verifying Server Connection in a Project File 1210
Understanding Runtime Mode 1213
Trang 22Understanding the Visual Studio Tools for the Microsoft Office System 1218
Part 8
Appendix
Appendix
Installing Microsoft Office 1224Choosing Options When You Have No Previous Version of Office 1224Choosing Options to Upgrade a Previous Version of Office 1228Installing the Microsoft SQL Server Data Engine (MSDE) 1230Managing ODBC Connections 1233Creating an ODBC System Data Source Name
for Microsoft Access 1235Using ODBC for Connecting to Microsoft SQL Server 1237Converting from a Previous Release of Microsoft Access 1241Conversion Issues 1242Creating an Office Toolbar in Windows XP 1243
Index of Troubleshooting Topics 1247
Index 1249
Trang 23The folks on the Microsoft Access development team provided invaluable technical support
as I worked with the beta software and tried to figure out some of the challenging technical details in Microsoft Office Access 2003 Special thanks to Bill Ramos, Mike Wachal, Tim
Getsch, and Clint Covington You guys make an author’s job so much easier But any errors
or omissions in this book are ultimately mine
This book wouldn’t have happened without the outstanding efforts of Sandra Haynes, my project editor; Curt Phillips, the excellent technical editor on the book; and Andrea Fox, who kept all my commas in order Thanks also to the entire production team at Microsoft Press Special thanks to Alex Blanton, who talked me into “running the gauntlet” again
Thanks also to G L Sanders, my “partner in crime” at LawTrack, who thought it would be a neat idea to include our contact and sales tracking database as one of the main examples in this book Including a real production database in the book helps readers see the true value of using Microsoft Access And last, but certainly not least, thanks to my son, Michael, who wrote major portions of five of the chapters in this book He’s really turning into a database expert in his own right (maybe it’s genetic)—not bad for someone who majored in psychol-ogy in college
John Viescas
Austin, Texas
August 2003
Trang 25Our goal at Microsoft Press is to create books that help you find the information you need to get the most out of your software
The Inside Out series was created with you in mind As part of our ongoing effort to ensure
that we’re creating the books that meet your learning needs, we’d like to hear from you Let us know what you think Tell us what you like about this book and what we can do to make it better When you write, please include the title and author of this book in your e-mail mes-sage, as well as your name and contact information We look forward to hearing from you!How to Reach Us
E-Mail: nsideout@microsoft.com
Mail: Inside Out Series Editor
Microsoft PressOne Microsoft WayRedmond, WA 98052
Note: Unfortunately, we can’t provide support for any software problems you might
experi-ence Please go to http://support.microsoft.com for help with any software issues.
Trang 27The companion CD that ships with this book contains many tools and resources to help you
get the most out of your Inside Out book
What’s On the CD
Your Inside Out CD includes the following:
● Complete eBook. In this section you’ll find the an electronic version of Microsoft Office Access 2003 Inside Out The eBook is in PDF format.
● Insider Extras. This section includes sample files referenced in the book Use these files to follow along with the examples in the book; you can also use them to form the basis for your own work See also “Sample Applications,” later in this section for more detail
● Microsoft Resources. In this section, you’ll find information about additional
resources from Microsoft that will help you get the most out of the Microsoft Office System Building on the familiar tools that many people already know, the Microsoft Office System includes servers, services, and desktop programs to help address a broad array of business needs
● Extending Access. In this section, you’ll find great information about third-party utilities and tools you use to further enhance your experience with Access 2003
ver-sion of the Microsoft Computer Dictionary, Fifth Edition Suitable for home and office,
the dictionary contains more than 10,000 entries
The companion CD provides detailed information about the files on this CD and links to Microsoft and third-party sites on the Internet All the files on this CD are designed to be accessed through Microsoft Internet Explorer (version 5.01 or higher)
Note Please note that the links to third-party sites are not under the control of Microsoft Corporation, and Microsoft is therefore not responsible for their content, nor should their
inclusion on this CD be construed as an endorsement of the product or the site
Software provided on this CD is in English language only and may be incompatible with English language operating systems and software
Trang 28non-Sample Applications
Throughout this book, you’ll see examples from three sample Access applications included
on the companion CD These are located in the Insider Extras area of the CD
● Wedding List (WeddingList.mdb). This application is an example of a simple base that you might build for your personal use It has a single main table where you can track the names and addresses of wedding invitees, whether they’ve said that they will attend, the description of any gift they sent, and whether a thank you note has been sent Although you might be tempted to store such a simple list in an Excel spreadsheet
data-or a Wdata-ord document, this application demonstrates how stdata-oring the infdata-ormation in Access makes it easy to search and sort the data and produce reports
● Housing Reservations (Housing.mdb). This application demonstrates how a pany housing department might track and manage reservations in company-owned housing facilities for out-of-town employees and guests This application includes data access pages that could be published on a company intranet for use by employees log-
com-ging in from remote locations You’ll also find HousingDataCopy.mdb and HousingDataCopy2.mdb files that contain many of the query, form, and report exam- ples The Housing2BSecured.mdb and HousingSecured.mdb files demonstrate how to
design an application that works with Microsoft Access desktop security
● LawTrack Contacts (Contacts.mdb, ContactsData.mdb, Contacts.adp, and
with LawTrack Software Development (http://www.lawtrack.net/) It is both a contacts
management and order entry database—two samples for the price of one! This sample database demonstrates how to build a client/server application using only desktop tools as well as how to “upsize” an application to create an Access project and related SQL Server tables, views, stored procedures, and functions You will need to install the desktop version of SQL Server from your Microsoft Office 2003 Setup discs to be able
to fully use the project version of this database (See the Appendix for instructions.)
You’ll also find a ContactsDataCopy.mdb file that contains additional query, form, and
report examples
Please note that the person names, company names, e-mail addresses, and Web site addresses
in these databases are all fictitious Although I preloaded both databases with sample data, the Housing Reservations and LawTrack Contacts databases also include a special form
(zfrmLoadData) that has code to load random data into the sample tables based on
parame-ters that you supply
The examples in this book assume you have installed Microsoft Office 2003, not just Access
2003 Several examples also assume that you have installed all optional features of Access through the Office 2003 setup program If you have not installed these additional features, your screen might not match the illustrations in this book or you might not be able to run some of the samples from the companion CD A list of the additional features you will need
to run all the samples in this book is included in the Appendix The dialog boxes illustrated
in this book were captured with the Office Assistant turned off
Trang 29Following are the minimum system requirements necessary to run the CD:
later
Note System requirements may be higher for the add-ins available on the CD Individual add-in system requirements are specified on the CD An Internet connection is necessary to access the some of the hyperlinks Connect time charges may apply
Support Information
Every effort has been made to ensure the accuracy of the book and the contents of this panion CD For feedback on the book content or this companion CD, please contact us by using any of the addresses listed in the “We’d Like to Hear From You” section
com-Microsoft Press provides corrections for books through the World Wide Web at http://
www.microsoft.com/mspress/support/ To connect directly to the Microsoft Press Knowledge Base and enter a query regarding a question or issue that you may have, go to http://
www.microsoft.com/mspress/support/search.asp.
For support information regarding Office 2003, you can connect to Microsoft Technical
Sup-port on the Web at http://supSup-port.microsoft.com/.
Trang 31Used in This Book
This book uses special text and design conventions to make it easier for you to find the mation you need
infor-Text Conventions
Design Conventions
This icon identifies a new or significantly updated feature in this version of the software
Inside Out
This statement illustrates an example of an “Inside Out” problem statement
These are the book’s signature tips In these tips, you’ll get the straight scoop on what’s
going on with the software—inside information about why a feature works the way it does You’ll also find handy workarounds to deal with software problems
com-to Track Changes, and click the Highlight Changes command
Boldface type Boldface type is used to indicate text that you enter or type
Initial Capital Letters The first letters of the names of menus, dialog boxes, dialog
box elements, and commands are capitalized Example: the Save As dialog box
Italicized type Italicized type is used to indicate new terms.
Plus sign (+) in text Keyboard shortcuts are indicated by a plus sign (+) separating
two key names For example, Ctrl+Alt+Delete means that you press the Ctrl, Alt, and Delete keys at the same time
Trang 32Tip Tips provide helpful hints, timesaving tricks, or alternative procedures related to the task being discussed.
Troubleshooting
This statement illustrates an example of a “Troubleshooting” problem statementLook for these sidebars to find solutions to common problems you might encounter Trou-bleshooting sidebars appear next to related information in the chapters You can also use the Troubleshooting Topics index at the back of the book to look up problems by topic
Cross-references point you to other locations in the book that offer additional information about the topic being discussed.
This icon indicates information or text found on the companion CD
completing a task or problems that you must address before you can complete a task
Note Notes offer additional information related to the task being discussed
Sidebars
The sidebars sprinkled throughout these chapters provide ancillary information on the topic being discussed Go to sidebars to learn more about the technology or a feature
Trang 33Syntax Conventions
The following conventions are used in the syntax descriptions for Visual Basic statements in Chapter 22, SQL statements in the “Understanding SQL” article on the companion CD, and other chapters where you find syntax displayed These conventions do not apply to code
examples listed within the text; all code examples appear exactly as you’ll find them in the sample databases
You must enter all other symbols, such as parentheses and colons, exactly as they appear in the syntax line Much of the syntax shown in the Visual Basic chapter has been broken into multiple lines You can format your code all on one line, or you can write a single line of code
on multiple lines using the Visual Basic line continuation character (_)
Bold Bold type indicates keywords and reserved words that you
must enter exactly as shown Microsoft Visual Basic stands keywords entered in uppercase, lowercase, and mixed case type Access stores SQL keywords in queries in all upper-case, but you can enter the keywords in any case
under-Italic Italicized words represent variables that you supply
Angle brackets < > Angle brackets enclose syntactic elements that you must
sup-ply The words inside the angle brackets describe the element but do not show the actual syntax of the element Do not enter the angle brackets
Brackets [ ] Brackets enclose optional items If more than one item is
listed, the items are separated by a pipe character (|) Choose one or none of the elements Do not enter the brackets or the pipe; they’re not part of the element Note that Visual Basic and SQL in many cases require that you enclose names in brackets When brackets are required as part of the syntax of variables that you must supply in these examples, the brack-
ets are italicized, as in [MyTable].[MyField].
Braces { } Braces enclose one or more options If more than one option
is listed, the items are separated by a pipe character (|)
Choose one item from the list Do not enter the braces or the pipe
Ellipsis … Ellipses indicate that you can repeat an item one or more
times When a comma is shown with an ellipsis (,…), enter a comma between items
Underscore _ You can use a blank space followed by an underscore to
con-tinue a line of Visual Basic code to the next line for readability You cannot place a continuation underscore in the middle of a string literal You do not need an underscore for continued lines in SQL, but you cannot break a literal across lines
Trang 35Once upon a time, in a far-off corner of a land renowned for its wizards and inventors, there lived a Great Wizard Like other great wizards before him (the names of Eli Whitney, Orville and Wilbur Wright, and Thomas Edison still ring throughout the land), this Great Wizard devoted his life to inventing products that would improve the lives of people throughout the known world.
One beautiful spring day under blue skies laced with wispy clouds (and there was great
rejoicing throughout the realm, for such fine days are rare in this far-north land), the Great Wizard declared to all his wizard assistants: “We should create a new invention that will help all people store and manage information more easily In honor of this fine day, I name the
new invention Cirrus.” And so it came to pass that the wizard assistants, toiling
ever-dili-gently over their keyboards, created the new invention
When the new invention was almost finished, the Great Wizard declared: “We must fully test this new invention before we can send it out to compete with products from the realms of Borland or Ashton-Tate Call forth people from around the world, and we shall dub them
beta testers.” The beta testers marveled at the capabilities of the new invention They
exclaimed: “We can assemble new applications to manage our data in record time! We can store our information in tables, ask questions with queries, edit the data with forms, summa-rize the information with reports, and automate the entire process with macros and Basic
We can even access information we already have stored in text files, spreadsheets, or even other data storage systems!”
The Great Wizard studied the information provided by the beta testers with great care and declared, “I think our new invention is ready to enter world competition, but we need to give
it a new name: ACCESS! We should also make it easy for everyone to acquire and use our great
invention, so we will ask only for the small sum of $99 to obtain the fruits of our wizardry.”And so the new invention was sent out into the world, and it immediately became a great suc-cess But the wizards were not finished with their work In the many years hence (and a year
is a long time in the world of such inventions), the wizards toiled on and produced not one but seven new versions of their original invention They made queries faster and forms and reports more powerful They enhanced the original Access Basic language (renaming it
Visual Basic for Applications) and made it compatible with other inventions in the group of products they came to call Office They created a way to directly link the powerful forms, reports, and Visual Basic capabilities of Access to another invention of the wizards: Microsoft SQL Server
Meanwhile, another great invention—the Internet (or World Wide Web)—was taking the world by storm Although this new invention was not directly the work of these wizards of the north, the Great Wizard quickly realized its value and declared that all new inventions or enhancements to old inventions must work with the Internet In response, the wizards work-ing on Access created new tools to make it easy to design Web pages that can display or
Trang 36Access applications to exchange information with Web servers by adding the ability for Access to understand the new data storage language of the Web—Extensible Markup Lan-guage (XML) And in the latest version they have made it possible for Access queries, forms, and reports to work directly with data stored on a Web server.
Ignoring the man behind the curtain (please pardon the mixed metaphor), we now return to the real world to continue our story
Microsoft Access Today
Access is just one part of Microsoft’s overall data management product strategy Like all good relational databases, it allows you to link related information easily—for example, customer and order data that you enter But Access also complements other database products because
it has several powerful connectivity features As its name implies, Access can work directly with data from other sources, including many popular PC database programs (such as dBASE and Paradox); with many SQL (structured query language) databases on the desktop,
on servers, on minicomputers, or on mainframes; and with data stored on Internet or intranet Web servers Access also fully supports Microsoft’s ActiveX technology, so an Access applica-tion can be either a client or a server for all the other Office applications, including Microsoft Word, Excel, PowerPoint, Outlook, FrontPage, Publisher, and the new Microsoft OneNote.Access provides a very sophisticated application development system for the Microsoft Win-dows operating system This helps you build applications quickly, whatever the data source
In fact, you can build simple applications by defining forms and reports based on your data and linking them with a few Visual Basic statements; there’s no need to write complex code in the classic programming sense Because Access uses Visual Basic, you can use the same set of skills with other applications in Microsoft Office or with Microsoft Visual Basic
For small businesses (and for consultants creating applications for small businesses), the Access desktop development features are all that’s required to store and manage the data used
to run a typical small business Access coupled with Microsoft SQL Server—on the desktop
or on a server—is an ideal way for many medium-size companies to build new applications for Windows quickly and inexpensively For large corporations with a big investment in mainframe relational database applications as well as a proliferation of desktop applications that rely on PC databases, Access provides the tools to easily link mainframe and PC data in
a single Windows-based application
Microsoft Access can also act as a direct source of information published on an intranet or the World Wide Web Data access pages let you quickly create and deploy intranet applica-tions using pages that you create directly from Access much like you would create an Access application form Data access pages can retrieve and update data stored either in an Access database or in Microsoft SQL Server Microsoft Access 2003 includes new and enhanced fea-tures to allow you to export or import data in XML format (the lingua franca of data stored
on the Web) or to directly link to an XML data source on a Microsoft SharePoint Services Web site You can export data (or subsets of data) stored in a Microsoft Access or SQL Server
Trang 37About This Book
If you’re developing a database application with the tools in Microsoft Access, this book gives you a thorough understanding of “programming without pain.” It provides a solid founda-tion for designing databases, forms, and reports and getting them all to work together You’ll learn that you can quickly create complex applications by linking design elements with Visual Basic This book will also show you how to take advantage of some of the more advanced fea-tures of Microsoft Access You’ll learn how to build an Access project that links directly to a Microsoft SQL Server database You’ll also learn how to use Access tools to link to your Access data from the Web or link your Access application to data stored on the Web
If you’re new to developing applications, particularly database applications, this probably should not be the first book you read about Microsoft Access I recommend that you first
take a look at Microsoft Office Access 2003 Step by Step or Faster Smarter Microsoft Office Access 2003.
Microsoft Office Access 2003 Inside Out is divided into seven major parts:
a single line of code
those features in Access, and discusses some of the main reasons why you should consider using database software
of the major objects in an Access database by taking you on a tour through two
of the sample databases, and explains the many ways you can use Access to ate an application
rela-tional database application with little effort Even if you’re already familiar with Access or creating database applications in general, getting the table design right
is so important that this chapter is a “must read” for everyone Starting with a good design is the key to building easy-to-use and easy-to-modify applications
queries to analyze and update data in your tables
tables
already begun to load data and build other parts of your application
Datasheet view
Trang 38tables, summarize information, build queries that require you to work in SQL view, and work with the PivotTable and PivotChart views of queries.
data, inserting new data, deleting sets of data, or creating a new table from a selection of data from existing tables
applica-tion, from simple forms you build with a wizard to complex, advanced forms that incorporate embedded forms, multiple pages, PivotCharts, or ActiveX con-trols
fea-tures as well as how to print them
and complex reports in your desktop application
skills you need to create client/server applications in an Access project
define SQL Server tables for the project
the Access project equivalent of Access desktop queries
you how forms work differently in an Access project
how to design reports in an Access project
your database objects and make your application “come alive.”
com-prehensive list of events, and briefly discusses the macro design facility
models implemented in Access The final section of the chapter presents two complex coding examples with a line-by-line discussion of the code
might want to automate with Visual Basic Each section describes a problem, shows you specific form or report design techniques you must use to solve the problem, and walks you through the code from one or more of the sample data-bases that implements the solution
custom command bars (menus and toolbars), how to use the Performance
Trang 39Ana-■ Chapter 25 provides an overview of the ways you can publish data on a Web site.
your Access applications
data to and linking data from a Microsoft SharePoint server
environment and considerations for converting your application from a desktop database (.mdb) file to a project (.adp) file linked to SQL Server
with the new macro security features
it to others
The book also includes an Appendix that explains how to install Microsoft Office, including which options you should choose for Microsoft Access to be able to open all the samples in this book It also discusses how to install the SQL Server desktop engine (MSDE), and how to define Open Database Connectivity (ODBC) connections to remote data
Four articles that provide important supplementary information are included on the panion CD in Adobe PDF format:
desk-top databases It also contains notes about differences between SQL supported natively
by Access and SQL implemented in SQL Server
applica-tion to such data formats as a spreadsheet, Word mail-merge document, text file, SQL table, or a dBASE or Paradox file
Access application and the equivalent functions you can use when creating queries in SQL Server
(as well as their corresponding hexadecimal codes) so you can designate your colors by name instead of in hexadecimal code when creating Web pages