MDE created by Access 2003 can't be opened with Access XP

C

Chlaris

Dear all,

I create MDE using Access 2003, but the file can't be opened with Access XP.
Is there something wrong with my MDE file ?
Thanks.

Chlaris
 
T

Tom van Stiphout

On Wed, 3 Sep 2008 09:57:48 +0700, "Chlaris"

Nothing wrong with it, but you need to realize software is rarely
forward-compatible.
Use Access XP to create the MDE.

-Tom.
Microsoft Access MVP
 
N

Norman Yuan

Shouldn't AccessXP(2002) and Access2003 use the SAME file format? Are you
saying that "Access2002 format" (when you set format in Options dialog box
with AccessXP) and "Access2002-2003 format" (when you set format in Options
dialog box with Access2003) are different? If so, why "Access2002-2003"
format? Delibrately confusing users?
 
R

Rick Brandt

Norman said:
Shouldn't AccessXP(2002) and Access2003 use the SAME file format? Are
you saying that "Access2002 format" (when you set format in Options
dialog box with AccessXP) and "Access2002-2003 format" (when you set
format in Options dialog box with Access2003) are different? If so,
why "Access2002-2003" format? Delibrately confusing users?

The "file format" is the same, but the generated MDEs are still a little
different. They are forward compatible (Access 2000 or higher), but not
backward compatible. MDEs must be created in the oldest version you need to
support.
 
D

David W. Fenton

The "file format" is the same, but the generated MDEs are still a
little different.

And MDB is a Jet 4 file that happens to store VBA in it. VBA
compilation has different versions for each version of Access, so
anything regarding an MDE is going to be version specific.

I'm just surprised (and grateful) that they can make MDEs forward
compatible (i.e., an A2K-created MDE can be used in later versions
of Access).
They are forward compatible (Access 2000 or higher), but not
backward compatible. MDEs must be created in the oldest version
you need to support.

This is yet another case where I think people simply fail to
comprehend what an MDE actually is.
 
D

David W. Fenton

It's not the same db format. Create the mde file in Access 2002,
and Access 2002 and 2003 (which can read the older format) or
later versions will be able to open the mde.

Of course it's the same DB format.

But it's not the same version of VBA compilation (which has nothing
to do with the *file* format).
 
T

Tony Toews [MVP]

David W. Fenton said:
I'm just surprised (and grateful) that they can make MDEs forward
compatible (i.e., an A2K-created MDE can be used in later versions
of Access).

So am I actually.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
 
D

David W. Fenton

It's a different binary file format. If you create a db with
tables, queries, forms and reports, but no vba code and then
convert to mde in both Access 2002 and 2003, Access 2002 can open
the 2002 mde but won't be able to open the 2003 mde. It'll get
the "unrecognized database format" message. Incompatible binary
file format, even though no vba code was in the original mdb.

But the issue is not with tables, which are Jet objects, but with
code-bearing objects. The distinction I'm making here is a
back-end/front-end distinction.
 
R

Rick Brandt

Chris said:
Ok, put only forms in the Access 2002-2003 db format mdb file. No
vba code allowed. Convert to mde with Access 2003. Try to open it
with Access 2002. You'll get the "unrecognized database format"
message, not because it couldn't read the compiled vba (there isn't
any), but because it couldn't read the binary file, which is the db
file format. That's my understanding of it anyway.

Chris
Microsoft MVP

My understanding has always been that as soon as you have a form, report, or
module, you have "code" since those are code-based objects. You might not
have attached modules with your own code in them, but that might not mean
that Access itself hasn't already added some code.
 
R

Rick Brandt

Chris said:
There's no vba code associated with a form or report unless you add a
module to the form or report.

Export a form with saveastext. At the top are properties: version,
version required and check sum. Then a list of the form's
properties, controls and their properties.

If the form's "has module" property is yes, there's an added section
below the form's properties and controls. It lists:

CodeBehindForm
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

and then the vba code in the module. If the form's "has module"
property is no, there's no CodeBehindForm property, no associated vb
attributes and no vba code. Just the version, version required,
check sum, form properties, controls and their properties.

I'm just speculating, but maybe that just means that there is no *user
added* code. A form without a module is not editable in an MDE so clearly
the MDE creation process is still having an effect on forms and reports that
it does not have on tables and queries. Whatever that effect is it
apparently differs from one Access version to the next.
 
D

David W. Fenton

My understanding has always been that as soon as you have a form,
report, or module, you have "code" since those are code-based
objects. You might not have attached modules with your own code
in them, but that might not mean that Access itself hasn't already
added some code.

I wonder what would happen if you set the HasModule property of all
those forms to FALSE?
 
C

Chlaris

I think Access 2003 makes confusion with the words "Access 2002-2003 format"
With that words, I'm sure it's compatible with Access 2002.
Thanks.
 
R

Rick Brandt

David said:
I wonder what would happen if you set the HasModule property of all
those forms to FALSE?

Thinking about it some more there is a utility that won't de-compile an MDE,
but will unlock forms and reports for editing so perhaps those are locked in
an MDE by some other mechanism which has nothing to do with "code".
 

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