2002 database corrupt and unuseable after upgrading to Access 2003

  • Thread starter James Carpenter
  • Start date
J

James Carpenter

I'm seeking advice on an Access 2002 database with VBA code which will not
open in Access 2003. The database was operating successfully under Access
2002, and was compacted and repaired before the 2003 upgrade was installed.
It is a single-user database still under development; there are several
backup copies, all displaying these symptoms.

The database has an autostart form which displays a few seconds, then closes
and launches the main switchboard. Launching in 2003 generates the Microsoft
Visual Basic message while the form displays: "An error occurred while
loading 'Report_R_Agg_S_I'. Do you want to continue loading the project?"
This refers to an empty class module.

Clicking "no" produces the message "The VBA project in the database is
corrupt."

Clicking "yes" gives the message "Invalid procedure call or argument" and
opens the debugger to a module that isn't running at this point.

Opening the database with the shift key down bypasses the autostart form,
but then opening the VBA code produces the same sequence of errors.

Converting the database isn't possible because it is already in 2002-2003
format. Compact and repair under 2003 generates the same sequence of error
messages and fails.

Has anyone experienced similar problems? If so, how were they resolved?
Sorry so wordy; just trying to describe the situation as completely as I can.
Thanks to anyone who can offer help!
 
A

Allen Browne

James, it sounds like you have a partially corrupted A2002 database. When
converted to A2003, the corruption shows up, but you can still open/use it
in A2002?

If so, a decompile might fix the problem. Access keeps 2 copies of the code:
the text vesion that you view and edit, and the compiled version that
actually runs. If these two get out of sync, the project is partially
corrupt. This is fairly common when you are altering the objects, especially
if you edit the code while it is running (i.e. in break mode.)

To fix it, try this sequence:
1. Make a backup of the A2002 mdb file, while it is not in use, so you get
multiple tries at this.

2. Opn A2002. Uncheck the Name AutoCorrect boxes under:
Tools | Options | General
Explanation of why:
http://allenbrowne.com/bug-03.html

3. Open the report named R_Agg_S_I in design view, and set its Has Module
property to No. (On the Other tab of the Properties box.)

4. Compact: Tools | Database Utilities | Compact. Close Access.

5. Decompile, by entering something like this at the command prompt while
Access is not running. It is all one line, and include the quotes:
"c:\Program Files\Microsoft office\office\msaccess.exe" /decompile
"c:\MyPath\MyDatabase.mdb"

6. Open A2002. Compact again. Close.

7. Try the conversion to A2003 again.

--
Allen Browne - Microsoft MVP. Perth, Western Australia.

Reply to group, rather than allenbrowne at mvps dot org.

message
 
J

James Carpenter

Allen, I will try this once I can get to 2002 again. It was removed when they
upgraded Office. Your tips sound promising and I'll let you know how it goes.

Thank you,
James
 
G

George Nicholson

Allen:
Question: what is likely to happen if he tries Step #5 (the decompile)
in 2003 as-is?
 
A

Allen Browne

That will depend on the kind of corruption, but given that A2003 is barfing
on it while A2002 is not, that may not be a productive approach.

Of course, if you try on a copy and it messes up, nothing is lost.
 
J

James Carpenter

I'm in the process of getting a backup restored and A2002 reinstalled; then
I'll try all your suggestions.

James Carpenter
 
J

James Carpenter

Allen, your advice worked. I decided to try the decompile on A2003 after
removing the module from the problem in question (opened the database with
the SHIFT key down, which delayed loading the module long enough to delete
it).

Many reports had empty modules, which I've now removed. Thank you for the
useful advice!

James Carpenter
 
D

david epsom dot com dot au

decompile might fix the problem. Access keeps 2 copies of the code:

My impression was, 3 copies if you 'enable' a database: source
copy, 2K2 compiled copy, 2K3 compiled copy. Or was that only
A97/A2K (vba5/vba6) ??

(david)
 

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