A normal module is simply a place where you can put all kinds of functions
and sub-routines.
A class module is a special kind of module, and is what we call OO, or
object orientated programming. So, when you create a class module, you are
creating what we call a object.
A object is like any other object in ms-access, and even inteli-sense also
works.
Ms-access is not considered a full OO development environment like vb.net,
but it does all you to create your own custom class objects.
The main reason to use a class object is if you need a special "object" that
does a whole bunch of things, and all the code is HIGHLY related.
So, in a standard module I might have some code that posts some payroll data
at the end of the month. In that same module, might also have some code that
calculates the sunrise and the sunset time for a given day. So, in a
standard module, you can place all kinds of code. As a general rule, you can
and should create modules for things that are grouped together, but you do
not have to.
A class object is a special module, and as mentioned your first step towards
object orientated programming. These so called class objects (class
modules) are quite neat, as you can have multiple instances (more then one
copy) of the module run in memory at the same time.
For some reading on how (or more importantly) "why" you would use a class
object, you can read the following of mine:
http://www.attcanada.net/~kallal.msn/Articles/WhyClass.html