For a great introduction to class programming in VBA, I can't think of a better starting place than this article from longtime Access MVP, Ben Clothier:
Ben does a great job of explaining both why you should use class modules and how to do so with an excellent practical example.
Here's an outline of the article:
- Creating your custom types
- Creating our first class module
- Controlling access to methods via interfaces
- Factory Design Pattern
I've written about some of these same topics, too. If Ben's article piques your interest, check out the "Further reading" section below for additional information.
Two Approaches to the Factory Design Pattern
Ben uses a different factory design pattern than I do.
His approach hides the initialization function in the main class module so that it can't be called accidentally from outside the object factory, but it does require additional class modules. In and of itself, that's not a big deal, but the stock VBA development environment punishes you for having a lot of code modules.
If you adopt Ben's approach, you should seriously consider using the Rubberduck VBA add-in, which allows you to group code modules into custom folders.