Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Access 2007 VBA Programming docx
Nội dung xem thử
Mô tả chi tiết
Access™ 2007 VBA
Programming
FOR
DUMmIES‰
01_046531 ffirs.qxp 1/16/07 9:07 PM Page i
01_046531 ffirs.qxp 1/16/07 9:07 PM Page ii
by Joseph C. Stockman and Alan Simpson
Access™ 2007 VBA
Programming
FOR
DUMmIES‰
01_046531 ffirs.qxp 1/16/07 9:07 PM Page iii
Access™ 2007 VBA Programming For Dummies®
Published by
Wiley Publishing, Inc.
111 River Street
Hoboken, NJ 07030-5774
www.wiley.com
Copyright © 2007 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or
by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written
permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the
Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600.
Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing,
Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at
http://www.wiley.com/go/permissions.
Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the
Rest of Us!, The Dummies Way, Dummies Daily, The Fun and Easy Way, Dummies.com, and related trade
dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates in the United
States and other countries, and may not be used without written permission. Microsoft and Access are
trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE
CONTENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT
LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE
UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR
OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A
COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE
AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION
OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR THE PUBLISHER ENDORSES THE
INFORMATION THE ORGANIZATION OR WEBSITE MAY PROVIDE OR RECOMMENDATIONS IT MAY
MAKE. FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN THIS WORK
MAY HAVE CHANGED OR DISAPPEARED BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT
IS READ. FULFILLMENT OF EACH COUPON OFFER IS THE SOLE RESPONSIBILITY OF THE OFFEROR.
For general information on our other products and services, please contact our Customer Care
Department within the U.S. at 800-762-2974, outside the U.S. at 317-572-3993, or fax 317-572-4002.
For technical support, please visit www.wiley.com/techsupport.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may
not be available in electronic books.
Library of Congress Control Number: 2006939596
ISBN: 978-0-470-04653-1
Manufactured in the United States of America
01_046531 ffirs.qxp 1/16/07 9:07 PM Page iv
01_046531 ffirs.qxp 1/16/07 9:07 PM Page vi
Dedication
Joe Stockman: To my mom and all my friends and family who supported me —
and left me alone — during this project.
Alan Simpson: To Susan, Ashley, and Alec, as always.
Authors’ Acknowledgments
Even though only two authors’ names appear on the cover, every book is a
team project. These authors would like to thank the many people who contributed to this book. To Carole McClendon and everyone at Waterside
Productions, thank you for finding this project and making it happen. Also,
many thanks to Kyle Looper and Jean Rogers at Wiley for taking a chance on
a new author to help with the rewrite. And also, thanks to Microsoft for
making Access a wonderful development environment.
01_046531 ffirs.qxp 1/16/07 9:07 PM Page vii
About the Author
Joe Stockman is an independent consultant, software designer, and author
who has been using Microsoft Access since its initial release. He’s also developed courseware and taught classes in Access and VBA. Joe developed his
first application in Access, and then migrated into Visual Basic and VB.NET,
where he specializes in creating applications for the Windows Mobile platform. He worked for several software companies before forming his consulting business in 2002, where he deals with all types of clients including
healthcare, financial, government, manufacturing, and small business. His
ability to turn his customers’ wishes into working applications keeps them
satisfied. Joe’s also writing the fundamentals column for the Advisor Guide to
Microsoft Access magazine.
Alan Simpson is the author of over 100 computer books on databases,
Windows, Web site design and development, programming, and networking.
His books are published throughout the world in over a dozen languages
and have millions of copies. Alan has also taught introductory and advanced
computer programming courses at San Diego State University and the UCSD
Extension. He has served as a consultant on high-technology, educationoriented projects for the United States Navy and Air Force. Despite that,
Alan has no fancy job title because he has never had a real job.
01_046531 ffirs.qxp 1/16/07 9:07 PM Page v
Publisher’s Acknowledgments
We’re proud of this book; please send us your comments through our online registration form
located at www.dummies.com/register/.
Some of the people who helped bring this book to market include the following:
Acquisitions, Editorial, and Media
Development
Associate Project Editor: Jean Rogers
(Previous Edition: Christopher Morris)
Acquisitions Editor: Kyle Looper
Copy Editor: Becky Whitney
Technical Editor: Russ Mullen
Editorial Manager: Kevin Kirschner
Media Development Specialists: Angela Denny,
Kate Jenkins, Steven Kudirka, Kit Malone
Media Development Coordinator:
Laura Atkinson
Media Project Supervisor: Laura Moss
Media Development Manager: Laura VanWinkle
Media Development Associate Producer:
Richard Graves
Editorial Assistant: Amanda Foxworth
Sr. Editorial Assistant: Cherie Case
Cartoons: Rich Tennant
(www.the5thwave.com)
Composition Services
Project Coordinator: Jennifer Theriot
Layout and Graphics: Carl Byers,
Stephanie D. Jumper, Barbara Moore,
Barry Offringa, Alicia B. South
Proofreaders: Techbooks, Brian H. Walls
Indexer: Techbooks
Anniversary Logo Design: Richard Pacifico
Publishing and Editorial for Technology Dummies
Richard Swadley, Vice President and Executive Group Publisher
Andy Cummings, Vice President and Publisher
Mary Bednarek, Executive Acquisitions Director
Mary C. Corder, Editorial Director
Publishing for Consumer Dummies
Diane Graves Steele, Vice President and Publisher
Joyce Pepple, Acquisitions Director
Composition Services
Gerry Fahey, Vice President of Production Services
Debbie Stailey, Director of Composition Services
01_046531 ffirs.qxp 1/16/07 9:07 PM Page viii
Contents at a Glance
Introduction .................................................................1
Part I: Introducing VBA Programming............................7
Chapter 1: Where VBA Fits In............................................................................................9
Chapter 2: Your VBA Toolkit ...........................................................................................21
Chapter 3: Jumpstart: Creating a Simple VBA Program ..............................................35
Part II: VBA Tools and Techniques ...............................49
Chapter 4: Understanding Your VBA Building Blocks .................................................51
Chapter 5: Controlling Access through VBA.................................................................71
Chapter 6: Programming Access Forms ........................................................................87
Part III: VBA, Recordsets, and SQL............................115
Chapter 7: The Scoop on SQL and Recordsets...........................................................117
Chapter 8: Putting Recordsets to Work .......................................................................147
Part IV: Applying VBA in the Real World ...................173
Chapter 9: Creating Your Own Dialog Boxes...............................................................175
Chapter 10: Customizing Combo Boxes and List Boxes............................................201
Chapter 11: Creating Your Own Functions..................................................................239
Chapter 12: Testing and Debugging Your Code ..........................................................265
Part V: Reaching Out with VBA .................................293
Chapter 13: Using VBA with Multiple Databases........................................................295
Chapter 14: Integrating with Other Office Applications............................................315
Part VI: The Part of Tens ...........................................349
Chapter 15: Ten Commandments of Writing VBA ......................................................351
Chapter 16: Top Ten Nerdy VBA Tricks.......................................................................357
Index .......................................................................367
02_046531 ftoc.qxp 1/16/07 9:07 PM Page ix
02_046531 ftoc.qxp 1/16/07 9:07 PM Page x
Table of Contents
Introduction..................................................................1
About This Book...............................................................................................1
Conventions Used in This Book .....................................................................2
What You’re Not to Read.................................................................................2
Foolish Assumptions .......................................................................................3
How This Book Is Organized...........................................................................3
Part I: Introducing VBA Programming .................................................3
Part II: VBA Tools and Techniques.......................................................3
Part III: VBA, Recordsets, and SQL.......................................................4
Part IV: Applying VBA in the Real World .............................................4
Part V: Reaching Out with VBA.............................................................4
Part VI: The Part of Tens .......................................................................4
Icons Used in This Book..................................................................................4
Web Site for This Book ....................................................................................5
Where to Go from Here....................................................................................5
Part I: Introducing VBA Programming.............................7
Chapter 1: Where VBA Fits In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Taking a Look at Access ................................................................................10
Understanding VBA........................................................................................11
Seeing Where VBA Lurks...............................................................................12
Finding standard modules...................................................................13
Finding class modules .........................................................................13
From VBA to Access.............................................................................15
Finding Out How VBA Works ........................................................................17
Discovering VBA procedures..............................................................17
Recognizing VBA procedures..............................................................18
Chapter 2: Your VBA Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Using the Visual Basic Editor........................................................................21
Using Project Explorer.........................................................................23
Using the Properties window..............................................................24
Using the Immediate window..............................................................26
Using the Code window .......................................................................27
Referring to Objects from VBA.....................................................................29
Setting References to Object Libraries........................................................30
Using the Object Browser .............................................................................30
Searching the Object Library .......................................................................33
02_046531 ftoc.qxp 1/16/07 9:07 PM Page xi
xii Access 2007 VBA Programming For Dummies
Chapter 3: Jumpstart: Creating a Simple VBA Program . . . . . . . . . . . .35
Creating a Standard Module .........................................................................35
Creating a Procedure .....................................................................................36
Understanding Syntax ...................................................................................38
Getting keyword help...........................................................................40
Help with arguments............................................................................43
About named arguments .....................................................................45
Using Existing Code .......................................................................................46
Copy and paste code from the Web ...................................................46
Importing modules...............................................................................47
Modifying existing code.......................................................................48
Part II: VBA Tools and Techniques ................................49
Chapter 4: Understanding Your VBA Building Blocks . . . . . . . . . . . . .51
Commenting Your Code ................................................................................52
Understanding VBA Data Types...................................................................53
Passing Data to Procedures ..........................................................................54
Storing data in variables and constants............................................57
Storing data in arrays...........................................................................58
Module-level versus procedure-level.................................................60
Naming conventions for variables .....................................................61
Repeating Chunks of Code with Loops........................................................62
Using Do...Loop to create a loop ........................................................62
Using While...Wend to create a loop ..................................................64
Using For...Next to create a loop.........................................................64
Making Decisions in VBA Code.....................................................................66
Using If...End If statements..................................................................67
Using a Select Case block ....................................................................68
Chapter 5: Controlling Access through VBA . . . . . . . . . . . . . . . . . . . . . .71
Understanding Object Models......................................................................72
Distinguishing between objects and collections..............................72
Understanding properties and methods ...........................................75
Identifying the icons for objects, properties, and methods ...........77
Manipulating Properties and Methods........................................................79
Getting the value of a property...........................................................79
Changing the value of a property.......................................................81
Using an object’s methods ..................................................................82
Seeking help with properties and methods ......................................84
Chapter 6: Programming Access Forms . . . . . . . . . . . . . . . . . . . . . . . . .87
Working with Class Procedures....................................................................87
Enabling or Disabling Form Controls...........................................................90
Using VBA to position the cursor.......................................................91
Choosing an object and event for the code ......................................92
02_046531 ftoc.qxp 1/16/07 9:07 PM Page xii
Showing and hiding controls ..............................................................95
Making controls read-only...................................................................96
Responding to Form Events..........................................................................96
Changing the Appearance of Objects ..........................................................99
Changing colors....................................................................................99
Controlling boldface, italics, and such ............................................103
Changing special effects ....................................................................104
Using the With...End With statements .............................................104
Filling form controls with data .........................................................105
Opening and Closing Forms........................................................................107
Closing a form.....................................................................................109
Adding a related record to another table........................................109
More DoCmd methods for forms......................................................112
Part III: VBA, Recordsets, and SQL.............................115
Chapter 7: The Scoop on SQL and Recordsets . . . . . . . . . . . . . . . . . . .117
What the Heck Is SQL?.................................................................................117
Writing SQL without knowing SQL ...................................................120
Select queries versus action queries ...............................................121
Getting SQL into VBA .........................................................................123
Hiding warning messages..................................................................124
Storing SQL statements in variables................................................125
Creating Tables from VBA ...........................................................................128
Creating new tables from existing tables ........................................128
Creating a new, empty table from VBA ............................................129
Closing and deleting tables through VBA .......................................130
Adding Records to a Table..........................................................................131
Appending a single record with SQL................................................132
Query to append one record ............................................................133
Changing and Deleting Table Records.......................................................134
Performing an Action Query on One Record............................................136
Working with Select Queries and Recordsets...........................................137
Defining a connection ........................................................................140
Defining the recordset and data source ..........................................141
Filling the recordset with data..........................................................142
Managing recordsets..........................................................................143
Referring to fields in a recordset......................................................145
Closing recordsets and collections..................................................146
Chapter 8: Putting Recordsets to Work . . . . . . . . . . . . . . . . . . . . . . . . .147
Looping through Collections ......................................................................147
Using For Each loops .........................................................................149
Using shorter names for objects ......................................................152
xiii Table of Contents
02_046531 ftoc.qxp 1/16/07 9:07 PM Page xiii
xiv Access 2007 VBA Programming For Dummies
Tips on Reading and Modifying Code........................................................154
Square brackets represent names....................................................154
Other ways to refer to objects..........................................................155
The continuation character ..............................................................157
Skipping Over Used Mailing Labels ...........................................................159
Looking at How SkipLabels Works .............................................................162
Passing data to SkipLabels................................................................164
Declaring variables.............................................................................165
Copying the label report....................................................................165
Getting a report’s recordsource .......................................................165
Creating the recordset .......................................................................166
Creating LabelsTempTable from MyRecordSet ..............................166
Calling a Procedure from an Event ............................................................171
Part IV: Applying VBA in the Real World ....................173
Chapter 9: Creating Your Own Dialog Boxes . . . . . . . . . . . . . . . . . . . .175
Displaying and Responding to Messages..................................................176
Asking a question ...............................................................................176
Designing a message box...................................................................177
Responding to a MsgBox button click .............................................180
Converting Forms to Dialog Boxes ............................................................182
Storing dialog box settings................................................................183
Setting form properties .....................................................................184
Adding controls to the dialog box....................................................187
Creating Custom Combo Boxes..................................................................189
Creating a Spin Box Control........................................................................195
Detecting a Right-Click ................................................................................198
Chapter 10: Customizing Combo Boxes and List Boxes . . . . . . . . . . .201
Programming Combo and List Boxes ........................................................202
Listing field names .............................................................................204
Listing text options ............................................................................207
Listing Table/Query field values.......................................................212
Linking Lists..................................................................................................216
Running code when a form opens....................................................218
Running code when the user makes a choice.................................219
Linking Lists across Forms .........................................................................222
Updating a combo box or a list box.................................................223
Opening a form to enter a new record.............................................225
Seeing whether a form is open .........................................................226
Getting forms in sync.........................................................................227
More Combo Box Tricks..............................................................................228
Using hidden values in combo and list boxes ................................228
Giving users a quick find ...................................................................232
Avoiding retyping common entries..................................................235
02_046531 ftoc.qxp 1/16/07 9:07 PM Page xiv