Converting Access 97 MDE to Access 2003

M

melickas

We created an Access 97 database program (MDE) almost 5 years ago using
VBA and used the Setup Wizard to create the installation floppies. We
upgraded our computer to XP Pro & Access 2003.

What is the step-by-step procedure to get this program working on our
new computer?

1. So far, when we try to convert to Acc03 by opening the MDE, we
receive the "Can't convert or enable MDE" error message.

2. If we open the MDB and try to convert, we get the "Missing or broken
VBE reference to the file 'dao2535.tlb' "" error. We still have a copy
of Access 97 on an old laptop, so we copied just the MDB file to the
laptop and removed the reference to the DAO 2.x/3.x Compatibility
Library and checked the Microsoft DAO 3.6 Object Library, recompiled
all modules (there are only tables here), and copied this new MDB back
to the new computer. We still received the error "can't convert or
enable MDE".

3. We must have to make a new MDE with this"new" database?

4. Also, do we have to use Access 97 to remove the old library
reference?

Been awhile since we programmed, so details appreciated. Thank you!
 
A

Allen Browne

The library reference you mention is the DAO 2.5/3.5 Compatibility Layer. It
was a bridge between Access 2 databases and Access 97. The library cannot be
used in Access 2000--a bridge too far" kinda thing.

Open the original MDB in Access 97, and remove the reference (Tools |
References, from a code window.) Then choose Compile All from the Debug
menu. Access will highlight the first line that needs to be changed. Fix
this one, and Debug again, until the code compiles completely.
 
M

melickas

If we open the MDB in Access97, there is no code -only the tables since
this is the backend. We can create a new Module, and do as you
instruct, but there is nothing to compile since there is no code. The
code is in the MDE but the MDE cannot open in Access03 -get the "can't
convert or enable MDE file" error. Please explain. Thanks
 
D

david epsom dot com dot au

You have lost the original file.

You need the original file the MDE was created from.

Not the MDB with the data in it, a different MDB.

If you can't find the MDB that the MDE was created from, you're screwed.

(david)
 
A

Allen Browne

Ah: your MDB and MDE are 2 different things (back end and front end), not 2
versions of the same thing.

An MDB contains 2 versions of the code in it:
- a text version (what you read and edit), and
- a compiled version (the binary that actually executes.)

An MDE contains only the binary. You cannot read or edit the code, and you
cannot convert between versions. It therefore needs to continue to exectue
under the original version, unless you can find the original MDB front end
that the MDE was made from. If you can find that, you can convert it to the
new version, and then use the new version to make another MDE.
 
M

melickas

Thank you for the information. A few questions & more backround
information before I start.

I designed this program for a customer of mine in 2002 and I have the
original program. I have since moved on to just computer
hardware-related services so I am a little rusty on the making of MDEs
since Access97.

I do have the original MDB and MDE I created for the customer.

1. In your response you indicate that need to "find the original MDB
front-end". I was used to referring to the MDE as the front-end and the
MDB as the back-end. To be clear, what is the MDB front-end you are
referring to or was this a typo?

2. To convert the original MDB, do I have to correct the references in
Access97 first, then copy that MDB to my Access 2002 & convert? Or,
can I correct the references in Access2002, then convert --leaving
Access97 out of the picture?

3. How do I get my customer's data into the "new" version? I would
assume, after converting the MDB, I can import their tables, then make
the MDE??

4. My customer is using Access 2003 - I am limited to Access 2002. Is
there going to be a problem?

5. How do I reinstall the program onto my customer's computer - I
assume a CD is generated when I make the MDE? I used 9 floppies
before...

Thank you very much!
 
A

Albert D.Kallal

1. In your response you indicate that need to "find the original MDB
front-end". I was used to referring to the MDE as the front-end and the
MDB as the back-end. To be clear, what is the MDB front-end you are
referring to or was this a typo?

The mdb front end is of course the original mdb you had to make the mde. As
a
developer, you work on the mdb, you need the mdb, and only RIGHT before you
deploy to your users do you convert the mdb to a mde. This generally makes
the mde a bit smaller. The only requirements you need to make a mde is that
ms-access is the in the SAME VERSION as what you are developing under. All
versions of ms-access include the ability to make a mde. The resulting mde
does result in a smaller file. It does not result in some windows package,or
result in a multiple disk set as you mention. You simply go convert to mde,
and you get a slight smaller mde file. It is a quick and easy process.
2. To convert the original MDB, do I have to correct the references in
Access97 first, then copy that MDB to my Access 2002 & convert? Or,
can I correct the references in Access2002, then convert --leaving
Access97 out of the picture?

You should try and remove un-necessary refs. As the other poster mentioned,
it seems you don' likely need that ref in a97. As a general rule, a2003 will
covert, and fix/change the refs for you. If your a97 mdb file compiles
correctly, then it should convert without problems.

After you got the a2003 database. You need to test it, compile the code,
and ensure no errors. Again, as a general rule, my a97 applications convert
without any problems to a2003. You should then have no problem
making a mde.

Regardless, BEFORE you try and make a mde, you need to compile the code
in a2003, and remove all errors. (ctrl-g...in the code window, you go
debug->compile).
3. How do I get my customer's data into the "new" version? I would
assume, after converting the MDB, I can import their tables, then make
the MDE??

Just open the data part with a2003, and it will ask you to convert. Convert,
and you are done.

The code part (front end) is the one where you need ensure that the code has
no errors, and you can compile the code. Only AFTER you get the code to
compile, do you then attempt to make a mde...
4. My customer is using Access 2003 - I am limited to Access 2002. Is
there going to be a problem?

a2003, and a2002 actually "default" to a2000 format. However, that is
generally ok for data, you are talking developers, developing code, and
working on a application. So, this process brings in a new dimension. Since
a2002, and a2003 share the same format, then you can do this work on your
a2002 machine.

However, right before deploying, I would use a2003 to make the mde
5. How do I reinstall the program onto my customer's computer - I
assume a CD is generated when I make the MDE? I used 9 floppies
before...

No, a mde file is created by going tools->database utile. The result is a
mde file. There is no cd, or nothing generated here.

Try making a simple form with "hello" on it..and then make a mde out of
this mdb.

To install the mde application on the target computer, you need to have
ms-access installed on that computer. You can also consider using the
developers edition of ms-access, and this does allow you to create a windows
package that includes your mde, and a ms-access runtime. However, the
process of making a mde is not really related to the process of creating a
package with the developers tools for office (which you likely don't have).

So, it is not clear if the target computers already will have ms-access
purchased and licensed or not. If they are NOT going to purchase ms-access
for each machine (ie: users don't really use ms-access, but *just* a
application created with access), then you will need the developers tools,
and that allows you to build and create a runtime. If they already got
ms-access, then you don't need to "package" anything. I often build a batch
file, or use www.winzip.com to zip up the contents, and give that to each
user. I used a registered version of winzip for a long time now. You don't
need winzip, and can just email, or give each user a copy of this mde file.
There is no "install" required. However, I use winzip, and no Inno so that
users don't have to be "told" where you save the file. Also, a installer can
build shortcuts on the desktop etc for you. But, you don't need a installer
to deply a mde to a machine with ms-access already on it.


The concepts, and as "why" you split are explained in detail here:

http://www.members.shaw.ca/AlbertKallal/Articles/split/index.htm

I also mention the issue of making a mde in the above...
 
M

melickas

Hello, and thank you for your replies. I have finally had a chance to
start on this conversion and I ran into a compile error, BUT I think I
approached this incorrectly.

Here's a review of our situation:

1. We used Office Developer ODE Tools 97 to create a custom database
program back in 2002. This created an MDB & MDE and we used the Setup
wizard to create the setup floppies to install on our customer's
computer. (We distributed this as an Access Runtime).
2. Our customer upgraded to a new computer running Windows XP with
Access 2003. The first error they had upon opening the program (they
had copied the MDB from the old computer) was related to "Missing or
broken reference to file 'dao2535.tlb' version 3.5'
3. We still have Office Developer ODE Tools 97 on an old laptop. We
also have the original MDB we created for the customer.
4. We also have Office Developer XP (2002) Tools running on XP Pro.
5. We also have VirtualPC2004 to run Office 2003 in order to emulate
our customer's setup.
6. We have the customer's file with their data they have added since we
distributed it to them.

Please outline the steps we should take in order to convert our
customer's current MDB (in Access97 format) to Access 2003.

My immediate question is whether I will need to use my old 97 Developer
tools in this conversion process?

Thank you
 
B

Brendan Reynolds

Your Access 97 MDB has a reference to the DAO 2.5/3.5 Compatibility Library,
which was used to allow old (Access 2.x vintage) DAO 2.5 code to work with
(Access 97 vintage) DAO 3.5. No corresponding compatibility library exists
for DAO 3.6 (as used by JET 4, Access 2000 and later) so the old DAO 2.x
code has to be updated before the Access 97 MDB can be converted.

You need to take the MDB and remove the reference to the DAO 2.5/3.5
Compatibility Library, and replace it with a reference to the DAO 3.6 object
library (or the DAO 3.51 object library if you choose to do this in Access
97 before converting). After making the change, attempt to compile, and the
first line of obsolete DAO 2.5 code that needs to be updated will be
highlighted. Update it, save, attempt to compile, and the next problem line
will be highlighted, etc., etc., until the MDB compiles without error.

The most frequently encountered problems are that the BeginTrans,
CommitTrans and RollBack methods are methods of the Workspace object in DAO
3.x (they were methods of the Database object in DAO 2.x) and that you can
not refer to a field of a recordset using dot syntax
(SomeRecordset.SomeField) in DAO 3.x, as you could in DAO 2.x.
 

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