You can read my article on using class objects in ms-access at:
http://www.attcanada.net/~kallal.msn/Articles/WhyClass.html
You can most certainly have multiple instances of the same form in
ms-access. But, no inheritance exists.
You might also note that also any function declared as pubic in a forms
module becomes a "method" of that form object, and you can then use it like:
frmMyForm.MyRefresh
The above would call the function MyRefresh if it is public.
So, we get in practice:
forms!YourForm.YourMethod
Or, if you want to soft code the form name, we get:
forms(strFormName).YourMethod
So, you can add methods to a form, and have those methods call code in a
general module, or even have that code use other class objects.
And, if you are looking for a new language to learn, why not VB.net? There
is VB6, but that is a few years old, and no new versions are coming out. So,
if you need VB like development, you can use ms-access. If you want
something with more OO, then vb.net would be the choice here.