Access 2002/2003 Incompatibility

G

Guest

Ok, i just sent an app i developed using MS Access 2003 (using 11.0 object
Library) to someone with 2002 (version 10.0).

The application crapped out on one of the first lines:

rst.Open "T_Team", CurrentProject.Connection, adOpenStatic,
adLockOptimistic, adCmdTable

The error message was "Class Not Registered"...

Is it possible that ADO isn't supported in 2002? I use ADO recordsets in a
LOT of places...

Is there something idiot-friendly that someone using 2002 can do to register
the Version 11.0 object library (ie without re-installing MS Access or
requiring the MS Access CDs?)?

Will this issue pop up everywhere that i do non-trivial coding (ie i also
use XMLHttp, InternetExplorer.Application ActiveX, etc...

Thanks,
-B
 
D

Douglas J Steele

Access 2002 uses ADO. (In fact, by default it only has a reference set to
ADO. For Access 2003, they came to their senses and there's also a default
reference set for DAO)

There's absolutely no way you can use the version 11 object library in any
other version of Access than Access 2003.

The first thing I'd do is check that some other reference isn't missing.
References are like apples: one bad one can spoil the whole bunch. Go into
the VB Editor and select Tools | References from the menu bar.

If any of the selected references have "MISSING:" in front of them, unselect
them, and back out of the dialog. If you really need the reference(s) you
just unselected (you can tell by doing a Compile, under the Debug menu), go
back in and reselect them.

If none have "MISSING:", select an additional reference at random, back out
of the dialog, then go back in and unselect the reference you just added. If
that doesn't solve the problem, try to unselect as many of the selected
references as you can (Access may not let you unselect them all), back out
of the dialog, then go back in and reselect the references you just
unselected. (NOTE: write down what the references are before you delete
them, because they'll be in a different order when you go back in)
 
G

Guest

Hi, Ben.
Is it possible that ADO isn't supported in 2002?

It's supported. However, there are multiple versions of the ADO library, so
if you want the most compatibility, then use the Microsoft ActiveX Data
Objects 2.1 Library for Access 2000, 2002, and 2003.
Is there something idiot-friendly that someone using 2002 can do to register
the Version 11.0 object library (ie without re-installing MS Access or
requiring the MS Access CDs?)?

Geez! That would explain why the Access 2002 user is getting this error
message. Have him re-register the MSACC.OLB library on his computer (the one
for Access 10.0, not 11.0). Tell him never to fiddle with these libraries,
as they aren't compatible between versions. If re-registering the MSACC.OLB
library doesn't help, then have him re-register all of the libraries he's
been fiddling with. He may have to reinstall Microsoft Office and the
service packs to get his configuration back to the way it should be.
Will this issue pop up everywhere that i do non-trivial coding (ie i also
use XMLHttp, InternetExplorer.Application ActiveX, etc...

Depends upon whether you are using early binding, late binding, or ActiveX
controls. Use late binding for multiple version compatibility. Never use
ActiveX controls in your Access database applications, because ActiveX
libraries often change between Access versions. If you refuse to take this
advice, then the way to avoid library version problems is to develop in the
version of the application being targeted and never use any other version of
Access with this database application. In your case, that would be Access
2002.

HTH.
Gunny

See http://www.QBuilt.com for all your database needs.
See http://www.Access.QBuilt.com for Microsoft Access tips and tutorials.
http://www.Access.QBuilt.com/html/expert_contributors2.html for contact info.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top