Database designed in 2003 crashes in 2000

D

DBG

I'm working in Access 2003, on a database in Access 2000 format. The idea
being that it should be backwards compatible to Access 2000 and up.

I keep a daily backup in case of problems or emergencies, so I always have a
version to fall back to.

About 10% of the time when I create a new version, and ship it off for my
colleages to test in Access 2000, it crashes at various points in the program
with a memory error.

I then revert to my previous day's version, make the exact same changes,
send the file off again and it works without any problem or crashes.

Our DB is not a separate frontend / backend, its all in one file.

So the question is, what is causing the problem where an Access 2000
database developed in Access 2003 crashes for no apparent reason with memory
access errors when run in Access 2000?

Is this is known problem, or am I the only one having such issues?
 
A

Albert D.Kallal

Well, you are working with a different version.

I also done a lot of development in a2003, but some clients are still a2000

And, if I deploy from my machine to theirs, I see TONS of problems.
(was not the least bit surprised either, as they are different versions).

So, the solution is to de-compile before you ship out the application.

Even better is to de-compile, and then re-compile on the a2000 box. You the
create a mde on the a2000 box, and then ship out that.
(you should be deploying a mde here, not a mdb).

I also have to assume you are working with a split database here, as how
else could you ship updates to your clients?
So, if you are not split, then split,a nd read the following:
http://www.members.shaw.ca/AlbertKallal/Articles/split/index.htm

So, the *best* solution is to de-compile, and then re-compile on the TARGET
machine.

If you can't do that, you might get away de-compiling BEFORE you ship (I not
tired this as a solution, but you could).

Anyway, without question, you do need to de-compile here, since without
doing so, you got a program is compiled with a different version, and in my
experience, the application would not run correctly (combo boxes did not
work, some parts of screens did not display....really lots of problems).

While a2003 can use a a2000 file, they are not really binary compatible at
the code level. So, a de-compile, and re-compile is in order before you
deploy.

The only thing I have not tested is sending the client a de-compiled mdb,
but that should work...

You can actually run the same application with a97, a2000, and a2003 all at
the same time (assuming your split the database, and send appropriate front
ends to each pc on the network).
 
D

DBG

I also done a lot of development in a2003, but some clients are still a2000

but if the database being developed on the a2003 machine is in a2000 format,
then shouldn't there theoretically be no problem?
Even better is to de-compile, and then re-compile on the a2000 box. You the
create a mde on the a2000 box, and then ship out that.
(you should be deploying a mde here, not a mdb).

Forgive the ignorance, but what do you mean by decompile / recompile? Yes,
we are using an mde for one project.
I also have to assume you are working with a split database here, as how
else could you ship updates to your clients?

We're not using a split database. Updates can be done by copying the
contents of one database to the other via a script.
So, if you are not split, then split,a nd read the following:
http://www.members.shaw.ca/AlbertKallal/Articles/split/index.htm

I will read it but I have no guarantee my boss will agree to do this.
The only thing I have not tested is sending the client a de-compiled mdb,
but that should work...

its the mdb files which are causing the problems during testing... one of
our other solutions allows the clients to have an mdb so they can make their
own changes.

Thanks!
 
A

Albert D.Kallal

but if the database being developed on the a2003 machine is in a2000
format,
then shouldn't there theoretically be no problem?

You can take a a2000 data file, and use between both machines. And, you can
as a rule send a a2000 mdb application to a a2003 user, and that also works
(as far as I know, a2003 will re-compile the code..since it "knows" it is
older).

However, a2000 has no such brains, or "future" knowledge. It expects a file
in a a2000 code format. So, don't send code backwards unless you re-compile.
Forgive the ignorance, but what do you mean by decompile / recompile?
Yes,
we are using an mde for one project.

Well, if you are using a mde, then you HAVE to use the a2000 box (you can
only create a mde in the SAME version of ms-access. So, while a2003 can
convert, or export to access 97, and access 2000 format, you MUST use a
a2003 format to make a mde with a2003 (and a2000 to make a a2002 mde)).

Now, the de-compile? You can read about it here:

http://www.mvps.org/access/bugs/bugs0008.htm

We're not using a split database. Updates can be done by copying the
contents of one database to the other via a script.

Ouch, a difficult process, one that has to be re-written for each update,
and after you import data and code, the mdb file is going to be in a
un-compiled state (this can cause bloat, slow load times, and a number of
other issues). This sounds like a lot of work.
I will read it but I have no guarantee my boss will agree to do this.

Well, then ask then why do they install outlook on each computer? As them
why they install PowerPoint on each computer? As them why they install Word,
or any other application that was developed? Further, you now are faced with
a situation of people who can't understand the difference between a
application, and a file (kind of sad that people can't even tell the
difference between a application, and data, don't you think?).
its the mdb files which are causing the problems during testing... one of
our other solutions allows the clients to have an mdb so they can make
their
own changes.

Yes, I did mean a mdb (you can't send a un-compiled mde anyway...just not
possible!!). So, try un-compiling the mdb before you send it (this of course
assumes you can send a whole new mdb, as you have mentioned some type of
script updating, and important of "parts" that occurs. (perhaps the original
mdb was sent from your a2003)

And, one more thing:
I have code run just fine in a2003, but when I ran it on a2000, I had
problems (a good example is conditional formatting). Remember, a2000 was
rather bug ridden, and a TON of things have been fixed, or improved upon in
a2003. (so, make sure those a2000 has the bug fixes and patches
installed...as a2000 really NEEDS those updates).
 

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