Buy new:
$51.00$51.00
Ships from: books4seasons Sold by: books4seasons
Save with Used - Good
$25.79$25.79
Ships from: Amazon Sold by: Badseed Productions

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
Building Microsoft® Access Applications PAP/CDR Edition
Purchase options and add-ons
Get fully functional database samples and table designs for four of the most common Microsoft Access database types—and use them as templates to create your own Access solutions. Database expert and Microsoft MVP John L. Viescas provides the detailed guidance you need to customize your own solutions from these application types:
- Membership Tracking
- Inventory Management
- Customer Support
- Reservations Management
For each type, you’ll walk through typical usage scenarios, design considerations, and common pitfalls. You’ll examine the logic behind each application’s table design, and learn how to adapt it for your own Access solution.
Get expert insights and examples to help you:
- Learn specific design techniques to improve your table structures
- Build forms with an attractive, intuitive, and easy-to-use interface
- Create queries, forms, and reports specific to each application type
- Design for client/server from the start?and share data more efficiently
- Apply best practices to help your application run more smoothly
- Avoid the 10 most common design problems—and deliver more robust solutions!
Note: This book covers Microsoft Office Access 2003, Access 2002, and Access 2000
CD includes database samples and a fully searchable eBook.
Use the sample databases on CD to model your own solutions for:
- Membership Tracking: Enter, track, and manage member information and communications.
- Inventory Management: Track and manage stock and create purchase orders, invoices, and packing lists.
- Customer Support: Track contacts, enter customer details, identify follow-up items, and create reminders.
- Reservations Management: Manage course registrations, car rentals, room reservations, and more.
A Note Regarding the CD or DVD
The print version of this book ships with a CD or DVD. For those customers purchasing one of the digital formats in which this book is available, we are pleased to offer the CD/DVD content as a free download via O'Reilly Media's Digital Distribution services. To download this content, please visit O'Reilly's web site, search for the title of this book to find its catalog page, and click on the link below the cover image (Examples, Companion Content, or Practice Files). Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.
- ISBN-100735620393
- ISBN-13978-0735620391
- EditionPAP/CDR
- PublisherMicrosoft Press
- Publication dateFebruary 23, 2005
- LanguageEnglish
- Dimensions7.38 x 1.75 x 9 inches
- Print length768 pages
Popular titles by this author
Editorial Reviews
About the Author
John L. Viescas is a database expert who provides consulting and training services to companies around the globe. He is the author of numerous books, including Running Microsoft Access 97, Running Microsoft Access 2000, Microsoft Office Access 2003 Inside Out, Building Microsoft Access Applications, and Microsoft Office Access 2007 Inside Out. John has been recognized as a Microsoft MVP since 1993.
Home Page: Viescas Consulting, Inc.
Product details
- Publisher : Microsoft Press; PAP/CDR edition (February 23, 2005)
- Language : English
- Paperback : 768 pages
- ISBN-10 : 0735620393
- ISBN-13 : 978-0735620391
- Item Weight : 3.05 pounds
- Dimensions : 7.38 x 1.75 x 9 inches
- Best Sellers Rank: #335,481 in Books (See Top 100 in Books)
- #25 in Desktop Database Books
- #59 in Database Storage & Design
- #63 in Computer Operating Systems (Books)
- Customer Reviews:
About the author

John L. Viescas is an independent database consultant with more than 45 years of experience. He began his career as a systems analyst, designing large database applications for IBM mainframe systems. He spent 6 years at Applied Data Research in Dallas, Texas, where he directed a staff of more than 30 people and was responsible for research, product development, and customer support of database products for IBM mainframe computers. While working at Applied Data Research, John completed a degree in business finance at the University of Texas at Dallas, graduating cum laude.
John joined Tandem Computers, Inc., in 1988, where he was responsible for the development and implementation of database marketing programs in Tandem's U.S. Western Sales region. He developed and delivered technical seminars on Tandem's relational database management system, NonStop SQL. John wrote his first book, A Quick Reference Guide to SQL (Microsoft Press, 1989), as a research project to document the similarities in the syntax among the ANSI-86 SQL standard, IBM's DB2, Microsoft's SQL Server, Oracle Corporation's Oracle, and Tandem's NonStop SQL. He wrote the first edition of Running Microsoft Access (Microsoft Press, 1992) while on sabbatical from Tandem. He has since written four editions of Running, three editions of Microsoft Office Access Inside Out (Microsoft Press, 2003, 2007, and 2010-the successor to the Running series), and Building Microsoft Access Applications (Microsoft Press, 2005). He is also the co-author of best-selling books on SQL published by Addison-Wesley: SQL Queries for Mere Mortals, 3rd Ed. (2014), and Effective SQL (2016).
John formed his own company in 1993. He provides information systems management consulting for a variety of small to large businesses around the world, with a specialty in the Microsoft Access and SQL Server database management products. He maintains offices in Nashua, New Hampshire, and Paris, France. He was recognized as a "Most Valuable Professional" (MVP) from 1993 to 2015 by Microsoft Product Support Services for his assistance with technical questions on public support forums. He set a landmark 22 consecutive years as an MVP in 2013.
You can visit John's Website at http://www.viescas.com.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book provides a good foundation for building Access applications, with one mentioning it includes detailed explanations of sample applications. The writing style is concise, with one customer noting it's written with intermediate to advanced programmers in mind.
AI-generated from the text of customer reviews
Select to learn more
Customers appreciate the book's approach to building Access applications, with one customer highlighting the detailed explanations of sample applications and another noting the practical tips provided.
"...There is explanations of every sample application and it's function. I would give it five stars if it were not for the title...." Read more
"This is a fantastic product, it really helped me to build my database and get organized for my business...." Read more
"The book is well written with real world application samples and practical tips for how to design a database that works instead of trying to mimic a..." Read more
"This book is a good start toward understanding how to build Access applications. Some of the details are missing...." Read more
Customers find the book useful, with one mentioning it provides helpful examples of application building.
"Very useful and informative and the CD that came with it is so useful...." Read more
"...very possible that the remaining chapters have some useful examples of application building, but the first chapter contains a number of just plain..." Read more
"...membership data base applications, and found it most helpful to my understanding and approach to modifications of my membership database for more..." Read more
"This was a very good book - concise and helpful - hopefully new ones like this will be available for newer versions of MS Access" Read more
Customers appreciate the writing style of the book, finding it concise, with one customer noting it is written with intermediate to advanced programmers in mind.
"This book is written with the intermediate to advanced programmer in mind...." Read more
"The book is well written with real world application samples and practical tips for how to design a database that works instead of trying to mimic a..." Read more
"This was a very good book - concise and helpful - hopefully new ones like this will be available for newer versions of MS Access" Read more
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on November 27, 2013Very useful and informative and the CD that came with it is so useful. Glad they have the sample code in the book as well as on the sample databases. It is a huge help.
- Reviewed in the United States on March 27, 2005As a self-taught Access developer for the past eight years, I have an extensive library of books dealing with beginneing to advanced areas of Access. I bought this book to add to my library, figuring it to be another reference item. However, in a casual browsing of the content, I discovered this book has much more to offer. I was pleasantly surprised to see information on levels of magnitude for linked tables, never having known that the number of sub folders for linked tables can affect the speed of reading from them.
Each of the sample databases has more than enough explanation and code to fully understand the how and why of the application.
After reading only the first three chapters, I have learned much that I was never aware of. I thought I understood Single and Double number types, but was re-educated by the information on page 18. Pages 32 and 33 taught me some new things about the difference between format and input mask.
I am now much better at my development, and I haven't yet finished the book. Excellent work, Mr. Viescas!
- Reviewed in the United States on May 3, 2009It's very possible that the remaining chapters have some useful examples of application building, but the first chapter contains a number of just plain bone-headed propositions that will seriously mislead the naive developer.
One proposition, repeated in several contexts, is that somehow an Autonumber field, being an "artificial key", is a bad idea. This is an egregiously wrong-headed view. A primary key in a table should ideally tell you nothing about the data on the row except the value you need to retrieve the row. On this score, an Autonumber field is ideal.
The assertion that some designers just "give up" and "throw in" an Autonumber shows a profound misunderstanding of normalization and should not be given a moment's credence.
An Autonumber field is, strictly speaking, an "artificial key", as the author says. To imply that this makes it also wrong is at the very least a misreading of a phrase, and suggests a cursory level of understanding of the subject at best.
Incidentally, another artificial key, widely used, is the GUID (Globally Unique Identifier), typically handled and presented as a long string of hexadecimal characters. The only difference between the GUID and Autonumber is that Autonumber values are sequential numbers (GUIDs can be, but normally aren't, and for a reason) and they are limited to a smaller set of values (2 billion and some for Autonumber versus 3.4 x 10^38 for GUIDs).
The differences are not germane to this discussion. Both GUIDs and Autonumber fields provide primary keys that tell you nothing about the row they identify, except the value you use to retrieve the row. Far from being somehow "wrong", versus human-readable keys, this is exactly what you SHOULD be using.
This is not the place for this level of detail, given the number of issues that arise in the first chapter, but a summary is surely merited.
He warns against "oversimplifying tables", which is to say, normalizing fully. Why he would see it as a problem that you must normally use queries to view the data is beyond me. Table design for relational data is not, repeat NOT, about human readability. It is simply not a factor. For spreadsheets, yes, but we're not talking about Excel.
Table design is about correct relations between lists of things that you need to represent, nothing else. The payoff for normalizing properly ("oversimplifying tables") is that your applications can handle the stuff in your lists easily and correctly, and there is even a performance benefit. (The performance argument is less compelling partly because gains from proper representation can be offset by the larger number of joins required when data is fully normalized. When that becomes a genuine problem, you start creating data warehouse repositories where everything is human readable and nothing is updatable anyway. Human readability of keys is not a consideration in live data.)
Using "artificial keys", according to the author, "masks the value for sorts and searches". Again, not an issue. Use queries. That's what they're for, to restore human readability to information that has been purposely placed in a logically compelling arrangement (multiple tables). If you don't think that queries are the answer for all normalization problems, use Excel, and stay out of relational design.
Don't whine because you can't read a single table and tell what's happening at levels above it. (The author could not read a stock record and tell what product was in stock in a design using "artificial keys", meaning autonumber field.) Expect human readability loss. It's an all but inevitable product of normalizing fully and using proper primary keys, keys which tell you nothing at all about a row of data except what value is needed to retrieve the row.
He observes that "you cannot join or link tables on a null value". It's true, in a trivial sense. You cannot literally use the JOIN operator to match fields on null values and get what you were hoping for. You can however add two fields to your query and use "IS NULL" as a criterion for both of them. There's your (INNER) JOIN.
More NULL silliness: Does A = B? Well, you can't answer that question "if A or B or both contain a null". Yes, you can. See above for doing it with criteria. Or, use the NZ or IsNull function in Access.
He recounts a sad example of some row being deleted from an upper level table, and having "no way to put it back ... with the original number in it", except by using "a brute-force insert query". Just for starters, use of relational integrity would have prevented the problem altogether, by blocking removal of an upper level table row whose primary key was in use as a foreign key elsewhere. It just wouldn't have happened. The author may not have had this option, since his application is described as working between a home office and remote users. Put referential integrity aside for this one, for lack of information. (I half suspect that use of built-in synchronization, instead of custom synchronizing code, as he describes it, would have solved the problem anyway, but put that aside, too, also for lack of information.)
Still, the answer in this case is exactly to run the one query you need to restore the row. There is nothing brute force about this. It's how you recover. Use LEFT JOIN from lower level to upper level table to identify the missing key that must go in the upper table. Replace the row in the upper table to restore that primary key. Then edit the remaining fields, and you are done.
In fact, you don't even have to edit the fields (though you would, to be nice). Since the data is now healthy again as a result of running exactly one append query, you could let the user edit the upper level record in whatever form would normally be used for that purpose. Just fill some fields with "**edit me**" as a signal that the record needs attention. It's trivial.
But not for this author. Get this: Rather than simply run one query and then edit some fields to solve the problem, the author "ended up writing a lot of unnecessary code and some special data entry forms to solve the problem". Unnecessary hardly describes it.
"In the correct design on the left..." Sigh. This is another jab at using "artificial keys", whereas his design (the correct one on the left) uses human readable and sometimes compound keys. I'm not such purist that I would never use a human readable key. I do it occasionally for lookup tables, so that I can store a short, but still readable, key, but also provide a full name and even a description. I do it mainly when I'm pressed for time and I know that the application at hand has no big future anyway.
It's practical in some cases, and causes no great harm, but it is technically a violation of the injunction that the primary key should tell you nothing about the row, and text joins are certainly somewhat slower than numeric joins. In the universe of Access applications, however, this consideration is typically not a major factor. Still, to call his definitely compromised solution the "correct design" is just beyond boneheaded. It's naive.
As for composite keys, which the author encourages: Just say no. Don't use them. They are annoying in every way imagineable. Maybe, MAYBE in the lowest level tables you could possibly have, EVER, in your data, they might be a slightly effort-saving compromise. But the first time you need to add a level below that level, you'll wish you hadn't.
However interesting the rest of the book may be, and it could be, approach it with great caution, knowing that the author shows no great understanding (it is tempting to say no understanding at all) of data design. He could be great at forms and reports and VBA. I don't plan to bother finding out.
My own personal choice is still Litwin/Getz/Gunderloy series of Access Versionwhatever Developer's Handbook, expanded to two volumes several years ago.
- Reviewed in the United States on April 7, 2008This book is written with the intermediate to advanced programmer in mind. There is much to learn from this book on options and techniques to use when building business applications in Access. There is explanations of every sample application and it's function. I would give it five stars if it were not for the title. The title maybe a bit misleading since it talks about building applications since it kind of sways you into thinking that it is a book on the step by step process of "Building Microsoft Access Applications." If you are seasoned in Access programming it is a gem to have in your bookshelf.
- Reviewed in the United States on July 22, 2013This is a fantastic product, it really helped me to build my database and get organized for my business. You can organize your address, print mailing labels and sort by what ever catigory you want.
- Reviewed in the United States on December 28, 2008The book is well written with real world application samples and practical tips for how to design a database that works instead of trying to mimic a template sample that could be missing key elements needed to run a functioning program.
- Reviewed in the United States on October 7, 2013my expectations were met. Had the book already but qas missing the cd. Received bookl on time and in excellent condition with cd included. will order again. paid shipping only and a penny for thw book. can't beat that. will keep one at home and one in the office
- Reviewed in the United States on August 12, 2013I bought this item to better understand membership data base applications, and found it most helpful to my understanding and approach to modifications of my membership database for more efficiencies of use.
Top reviews from other countries
- John A CookeReviewed in the United Kingdom on September 20, 2017
5.0 out of 5 stars Useful practical insights
Although this book was written many years ago, I have found its contents to be very relevant to providing practical solutions. I am impressed by the insights provided. A very worthwhile read!