PDA

View Full Version : Access 2000 and RTE 429 (can't create object)



Zbinden
12-10-2002, 03:46 PM
Hi,
Desparetedly seeking help !

I have a vb6 app which uses an access 2000 database.
The developer system has w2k (SP3) and MS Office 200 pro (with Access 2000) and vb6 installed .
The installation is created with ISX 3.54.
The app is working perfectly on the dev system.

The target system (either win 95 or w2k) does NOT have access 2000 installed. The app installs with mdac 2.6 and jet 4.0.
Reading and writing to the db works perfectly, but compacting the database (DBEngine. CompactDataBase olddb, newdb) fires the 429 (can't create object) RT error on the target system.

Reveal 3.0 does not give any hints.

Which dlls ISX 3.54 failed to pick up or are missing ???

kind regards
Jurg

Chandima
12-11-2002, 01:02 PM
It sounds like your program is using a file that is distributed with Access that is NOT included in either Jet or MDAC 26. You could always distribute the Access 200 runtime with your setup to see if it fixes the problem.

I am not very familiar with Access programming but don't you need the Access Object Library to do stuff (msaccess.olb)? Just as a test, try including the Access 97 module and see if it works.

Zbinden
12-11-2002, 03:32 PM
Hi Chandima,
Thanks for Your answer.
I actually do not have an access runtime license (e.g. access developer). Actually I do Not distribute an access standalone project - therefore the access runtime module should not be necessary.
I'm distributing a vb6 program which uses the msjet and dao modules to access an access database formerly created with msaccess - the access database is embedded in this vb6 environement.

kind regards
Jurg

Chandima
12-12-2002, 02:38 PM
Did you try using the Access 97 module? If it does fix the problem then we know it's because MDAC and Jet don't contain a file or COM interface that your project needs.

johnhind
12-13-2002, 08:27 AM
Chandima

Zbinden is using DAO if that's any help.

If he was using ADO then he would need the ADOX to do the compact, as I do successfully.


Zbinden,

I would suggest rewriting in ADO because DAO is going to cause you lots of problems later. DAO is dead !

John

Zbinden
12-14-2002, 03:24 AM
John,
Thanks for the answer.
I think this is a good idea for the next project.

Chandima,
I do not have the access 97 runtimes either, which btw do defintedly not work with access 2000.

To all,
I found a strange way which solved the problem:
I installed and registered dao350.dll in the same directory as dao360.dll. After that my app perfectly runs on both target computers (a new and fast win2000 laptop (dell) and a very old and slow win95 laptop (toshiba)).
Now the clue:
I unregistered and deleted da0350.dll and my app still runs perfectly on both target computers ...
Now I could simulate the '429 can't create object' RTE by simply unregistering dao360.dll. Of course reregistering dao360.dll did the job and the app worked without a problem.

Please, can somebody explain me whats going on ?

regards
Jurg

nemesisinv
01-06-2003, 02:58 PM
You created your database using the DAO 3.5x which is what is installed by default with Office 2000.

When you installed DAO 3.6 and Jet 4 on the target machine(s) they were not correctly registered as valid references in the database (since DAO 3.6 did not exist on the development machine).

Installing and registering DAO 3.5 on the target machine provided a valid reference. Unregistering the DLL and performing a compact/repair may have correctly referenced the DAO360.dll file (this sounds unusual, unless your compact/repaired when both dll's were registered?)