views:

725

answers:

6

I'd like to find a good book to read to come up to speed on Visual Basic for use with MS Access.

I don't want a book for dummies. There's plenty that I don't know, but I'm no dummy. I also don't want a book for neophyte programmers. I've programmed in several programming languages, and I'd like to leverage what I already know to help me learn yet another language.

I want a book, not something on line. For reasons I can't explain, I want things to look at, to read, and to reference, that DON'T involve looking at a computer screen. Call it healthy variation.

There's a pretty extensive HTML volume that comes with MS ACCESS. But it doesn't work well as a reference. And even as a tutorial, it starts at top and works its way down. I like top down development, but I prefer bottom up learning.

I don't mind if the book is out of date. My copy of MS Access is old.


Major Edit: I have re-evaluated my opinions about MS Access big time in the last few days.

I previously thought that MS Access was basically a database that had been scaled down to fit on the desktop and simplified to the point where office workers could use it, even if they were neither programmers nor DBAs. I had used it myself to good effect in manipulating data on the job, but it was just data I was using internally for my own project. I never had to deliver anything built on MS Access to employer-clients. I didn't have much respect for it as a DBMS.

Over the last few days, I've been perusing the internet and taking a much closer look at all the Access documentation that came on my MS Office CD. I have changed my mind about what MS really is.

I think it's not really a desktop database at all. I think it's a desktop applications generator for database oriented applications. It comes with a built in database engine, and one that can handle quite a bit of data, but that's not the point. The point is the queries, forms, reports and menus that you put on top of the tables. That's the real heart of MS Access. And most of that, as David Fenton pointed out in his response, can be built without writing any code.

Accordingly, I checked off David's response as the correct response, even above the responses that gave me what I was looking for, namely a book to buy and read to learn Visual Basic. I didn't get around to buying one of those books, mostly because I live so far from a bookseller, and I didn't want to jump for a book like this on Amazon.

I appreciate the book recommendations, and eventually I'll get around to buying and reading one of them. In the meantime, based on what I've just learned, I've decided that my own assessment of my previous Access knowledge was far too high. There's a mountain of useful stuff I need to learn about forms, reports, menus, and linking to external data before I get down to learning VBA. That's beyond the little I had already learned.

I still hold my prior experience in table design and in SQL with Oracle in high regard, in other contexts. And I still want to learn VBA. But I think there's much more than I imagined in the range of capabilities of MA Access, without writing code. I really don't know application generators, at all.

I'm eating a little humble pie here, and I'm not used to it.

Oh, and by the way, I found out how to do record at a time access to a database in VBA. It was buried in chapter 9 of the Building Applications html book that came on the MS Office CD. I still need that when I'm inventing data out of thin air. When I'm tranforming data that's already in one or more tables, I'll use queries. I was already thinking that way about stored data, back from my SQL days.

Thanks again David F.

+2  A: 

Maybe is Access 2003 power programming with VBA what you are looking for.

Gamecat
+6  A: 

This book seems to have stopped at Access 2002, but it's a very good one:

Access 2002 Desktop Developer's Handbook

I used it early in my career when I started out in Access development, and it had a plethora of good material. There's a corresponding "Enterprise Developer's" volume which deals with multiuser issues, using SQL Server as a back end, and so forth.

You can use either ADO or DAO with Access. But if you're using a Jet (.mdb) database, DAO is more straightforward, in my opinion. As I recall, working with recordsets is fairly similar in ADO and DAO; the difference is how you connect to the database in the first place.

Although this book focuses on VBA, not VB, the languages are almost identical.

Kyralessa
+1 for Litwin, Getz, and Gunderloy.
John Mo
Remou
+1 Access Developer Handbook also. Highly recommended.
pro3carp3
I'd say ADH is too advanced for a beginner in VBA, or a beginner at Access.
David-W-Fenton
It probably is, David. But I suggest you go back and read the questioner's second paragraph again.
Kyralessa
I still don't think that makes ADH a good candidate because it's basically not organized to teach. It's more a set of topics that an intermediate/advanced programmer is going to find useful. And I still think that using Access interactively is the first step before any programming.
David-W-Fenton
A: 

It's quite outdated at this point, but I have to mention Roger Jenning's Access 2 Developer's Guide It was an invaluable resource back when I was starting out. I still recommend it. If you can find a cheap copy of it, I think the principles covered are still relevant.

Though the "Access Basic" of the 2.0 version has long ago become VBA, Basic is still Basic. Between Intellisense and the fact that backward compatibility is pretty good, the concepts in Jennings' book can be applied successfully in the more modern versions of Access, especially if you also have a good book that covers the later versions.

Not a solitary source by any means, but worth a look just the same.

Jennings is also the author of several editions of the "Using Access" books. For some reason I clicked with Jennings. I liked his other books, but the "Using" series seems to be for a wider, less developer-oriented audience.

John Mo
-1 The differences between Access Basic and VBA are quite severe, so I don't really think a book like that is going to be helpful at all.
David-W-Fenton
Oh, I don't know. There are lots of things that didn't change: looping, conditional branching, etc. The fundamentals have been pretty consistent. I don't think anything revolutionary happened in the DAO model either. I recall that all of the constants completely changed. That part was painful.
John Mo
While someone already familiar with Access Basic is going to find it easy to adapt to the same code converted to VBA, I think a book on Access Basic is a very poor tutorial for the person just starting with VBA.
David-W-Fenton
Point taken, but unless you're familiar with the book and it's redeeming virtues -- especially on the conceptual level -- I think you're judging the book by its cover.
John Mo
Would you recommend that someone seeking to learn C++ get a book on C? I don't think so, even though in that case it might actually be quite useful, as C is not at all obsolete in comparison to C++. Access Basic *is* obsolete, and not helpful, in my opinion, in learning VBA.
David-W-Fenton
I don't recommend for or against books I haven't read.
John Mo
A: 

My 2 startup books were:

  • Access Database Design And Programming (O'Reilly...)
  • Access Cookbook (also O'reilly)

Both talk about Access & VBA. The first one is a lot about data-related objects used with Access (tables, recordsets, etc) and mainly deals with the DAO object model (as far as I can remember), so it lacks the ADODB object model... The second one is more about user interface and its coding (forms, controls, etc). Both have been reedited. It might mean they are of some interest!

And ... don't forget stackoverflow. There is a lot of very interesting stuff out there!

Philippe Grondier
+2  A: 

You don't say what kind of experience with Access you already have, but my recommendation is that you learn to use Access interactively to build applications before you start mucking around in code. The RAD capabilities of Access really shine when you use the interactive tools and wizards to create your application and sprinkle a little VBA code around to add functionality that's not provided by default (or through the wizards).

Too often, programmers with experience in other languages will think they have to start out with VBA code to produce a useful Access application. This is not true at all, and you won't leverage the strengths of Access unless you fully understand where you really need to implement code, and where you don't need to.

I'm not talking about using macros here, either. I'm just saying that there's an awful lot that you can do by pointing and clicking that would require extensive code pounding in most other languages.

Once you've done that, the next area to start learning is the event model of forms in Access. That's where all the power comes from, seems to me, in understanding how events work in bound forms, and then how you can use VBA code to alter the default behaviors.

But, again, seems to me that you want to start out absorbing the point-and-click capabilities of Access so you will only write code when point and click can't do the job, and in order to alter the default behaviors of the point-and-click-created objects.

David-W-Fenton
So... what book(s) do you recommend?
John Mo
I never recommend particular books, because different people have different levels and nees. My recommendation is to go to a bookstore and browse the shelves and examine the books on the topic to see which fits what you need.
David-W-Fenton
...but let me stress that before starting a book on coding in VBA, you should spend the time learning to use Access interactively. Otherwise, you're just wasting effort.
David-W-Fenton
David. Thanks for your comment. I appreciate it, regardless of the votes against it.
Walter Mitty
Taglines are specifically discouraged in the FAQ.
George Stocker
Reference, please. I've already been through this discussion, but think the hostility to sigs is ridiculously stupid.
David-W-Fenton
@David: I put the reference link in all of my rollbacks to my edit so far. You were also involved in a thread where this was decided on.
Geoffrey Chetwood
Putting in the edit comments does not make it clickable. And in the discussion I participated in, there was no conclusion that sigs are not allowed. It's a ridiculous policy and I don't understand why you spend your time editing out my sigs. Did it ever occur to you that you could email me?
David-W-Fenton
A: 

Although it doesn't really address data access;by far the best VB book of all times: Advanced Visual Basic 6: Power Techniques for Everyday Programs...

Matt Davison