Author: Andrew Couch
Publisher: Microsoft Press
Aimed at: Access developers
Pros: Well written descriptions of the topics covered
Cons: Too much space devoted to topics not relevant to the core audience
Reviewed by: Kay Ewbank
If you’re not an Access developer, you may be surprised that while the rest of the world has moved so far on, the Access developer is still back in the land of VBA.
Access VBA Programming Inside Out is aimed at two groups of readers; the Access user who has developed some apps but wants to get better at it; and the more experienced VBA programmer who wants to find out about the more advanced aspects of VBA. Given this audience, the first three chapters of the book are pretty much redundant, covering as they do using the VBA editor and debugging code; understanding the VBA language structure; and understanding VBA language features. I’m sure the author only included the topics because the publisher insisted, but it is a waste of space.
The meat of the book starts with chapters on the Access object and DAO data object models, including an explanation of why we’re back with using DAO in preference to ADO. The description of DAO is pretty good, though I don’t know that it would be possible to have written any VBA without already knowing this.
There are good chapters on working with forms, controls and reports that show how to use code to put together a system based on the visual elements of Access. For much of the core audience, these three chapters form the heart of the book, and the guidance through how to write code for these topics was very good. One slight complaint is that I thought there seemed to be rather too much emphasis on multi-value fields and working with them, though to be fair what was said was interesting.
Having covered the visual interface, Couch next goes on to how to use VBA classes. At a rough guess, this is the point where self-taught VBA programmers struggle. The three chapters here are well written, and while I don’t know if they’d be enough to take the self-taught to the next level, they do go through the ‘how’s of using classes with VBA, if lacking some of the philosophy on why you might want to do it. Having said that, there are useful chapters on using classes and events, and on using classes and forms, and if you worked your way carefully through all the examples you’d be a lot better at using classes at the end of the section than you were at the start.
The second half of the book moves on to using Access with other applications. There’s a chapter on linking Access tables to other apps such as Excel, SQL Server, Azure and SharePoint, and more usefully a chapter on integrating with the other Office applications. This isn’t looking at OLE automation, just at writing data to a spreadsheet, merging data with Word bookmarks, and reading and writing data from Outlook, though this latter topic is covered in a fairly general way.
The section on using Access with SQL Server and SQL Azure occupies 150 pages, so is quite a substantial chunk of the whole book. Nearly half of this is taken up by a description of SQL Server, what it does and how to use it. Next comes a chapter on upsizing from Access to SQL Server, then comes a chapter on using SQL Azure. I don’t know what percentage of databases are moved from Access to SQL Server in some form, but I suspect the task of moving them won’t be left to the VBA guys. What was said in the chapters was accurate, I just don’t know how relevant it is to the core audience.
The book rounds off with a chapter on application design and how to build applications, covering topics such as ribbon design, splash screens, and runtime deployment. The final chapter is a look at using ADO and ADOX.
On a tangential note, one thing that was interesting throughout the book was the number of pull-out explanations for why there are three or four ways to do something, why something doesn’t work the way you expect, the reason behind some inconsistent behaviour. It makes clear how much Access VBA is still horribly confusing unless you work with it fairly consistently. The book does a good job of explaining these ‘gotchas’, but it is revealing as to how much of a mess Access still is.
Overall, I thought this was a good book that’s somewhat spoiled because too much space is used on non-central topics given the target audience. In all cases, the material was accurate and the descriptions well written. I’m just not sure whether an experienced programmer would need to be told how to use the VBA editor; whether someone learning VBA for Access 2010 would want so much space devoted to how to move to SQL. There was very little coverage, relatively speaking, of using the other Office applications. The section on writing your own applications seemed short and could have benefitted from more material. I came away feeling that this would be a good book to have on the shelf, but I’d rather have seen more on Access VBA and less on the extras.