migration to Access 2003

  • Thread starter Thread starter Linda
  • Start date Start date
L

Linda

Hi,

We have a large Access 97-based application that we would
like to migrate to Access 2003, if it can be done without
a major re-write. What I see as a potential problem, is
that the application has a lot of DAO code.

Is Access 2003 fully backward-compatible with the DAO in
Access 97? Or, will I have to re-write some of the code
using ADO?

Thanks,
Linda
 
Hi Linda

Most of the A97 stuff works just the same in the later versions, with a few
exceptions and modifications. However, most of the newer stuff is either of
no benefit for data stored in Access tables, or else does not work properly
or is a hindrance to productivity/performance.

Some pointers:
1. Consider keeping your A97 as well as A2003. You can do that with a custom
install of Office 2003. If you have any difficulty getting them to co-exist,
see michka's article at:
http://www.trigeminal.com/usenet/usenet019.asp?1033

2. If a database will not convert, use A97 to decompile it first. While
Access is not running, enter this at the prompt. It's one line, and include
the quotes:
"c:\Program Files\Microsoft office\office\msaccess.exe" /decompile
"c:\MyPath\MyDatabase.mdb"

3. If you use ActiveX controls (such as calendar), the version will probably
break when converted. Fix it through References on the Tools menu (from a
code window).

5. A2003 references the ADO library as well as DAO, which duplicates objects
such as Recordset, Field, Property. Either remove the ADO reference, or
explicitly disambiguate everywhere in your application, e.g.:
Dim rs As DAO.Recordset

6. The "Name AutoCorrect" has myriads of bugs and performance problems. Turn
it off immediately you create any A2000 database. More info:
http://allenbrowne.com/bug-03.html

7. There are new properties that give performance problems (such as
SubDataSheetName for tables), and some existing properties have had their
defaults changed in a way that could compromise your validation code (e.g.
AllowZeroLength for code). More info:
http://allenbrowne.com/bug-09.html

8. There are serious problems with some of the new features in JET 4, such
as the Decimal data type. More info:
http://allenbrowne.com/bug-08.html

9. Access 2003 is incapable of saving just the object you are changing like
A97 does. That means concurrency problems (2 people cannot work in different
objects in the same mdb at once), and it takes longer to save if the mdb has
many objects.

10. Instead of the integrated development environment in A97, A2000 and
later have a version of Visual Basic cobbled together with the main Access
window. That's handy if you with with dual monitors, but does cause other
problems from minor annoyances with way the windows behave through to Access
getting completely confused about what goes with what if you have different
versions of Access open at the same time, thereby corrupting the database.

11. It is absolutely essential to have the service packs for A2000/2. The
bugs are so many and so drastic that simply importing code from A97 and
closing your database is enough to corrupt it if you do not have the service
packs!!! Details:
http://support.microsoft.com/?id=304548

12. Many of the known bugs in A97 have not been fixed. Hundreds more were
introduced in A2000, and many of those remain unfixed in A2003. In our
experience, you can expect to waste time with a couple of new bugs you have
not come across before in every mdb you develop. Some of these are listed
here:
http://members.iinet.net.au/~allenbrowne/tips.html#flaws
 
Back
Top