Microsoft Access was unable to initialize the Windows Registry

Posted on 2009-12-17
Last Modified: 2013-11-29
I am running Windows 7, Access 97 and Access 2002.  When I launch Access 97, I get the following error:

Microsoft Access can't be started.
Microsoft Access was unable to initialize the Windows Registry
Rerun Microsoft Access or Microsoft Office Setup to reinstall Microsoft Access.

I've reinstalled Access 97 to no avail.  Access 2002 works just fine.
Question by:deecee13
    LVL 74

    Expert Comment

    by:Jeffrey Coachman
    Running multiple versions of Access has always been problematic.
    Trying to run a version of Access that is almost 12 years old is pushing it a bit for Win 7.
    (it is not even clear if Access 97 will even run on Win7)

    Even if there is a fix for this, make *sure* you are not buggering up your registry on a brand new install of a new OS (With all of the "issues" it may have already), just to run a program that is almost 12 years old.)

    Can I ask the need for Access 97?

    An Access 97 DB can run fine under Access 2002


    Author Comment

    Unfortunately, our developers have written homegrown apps that run with Access 97.  I believe the mentality was that 'if it's not broke, don't fix it'.  I was able to remove all Office programs and run Access 97 on the Windows 7 PC tho.  I guess I'll have to push to get the databases converted if they don't play nice.

    Thank you.
    LVL 74

    Accepted Solution

    Not knowing everything about your situation, I can't say for sure.

    But there are no major issues issues with running an Access 97 DB in Access 2002.

    I mean, what's the harm in setting this system up on a test PC, and simply trying it?


    Author Closing Comment

    It wasn't really a solution, it was more of a 'why would you even want to'.
    LVL 74

    Expert Comment

    by:Jeffrey Coachman

    Expert Comment

    Try running the 12yo app in XP compatibility mode.  It works for our 12yo app!  :-)

    Expert Comment

    Have a look at this site:

    It helped me with a similar situation.


    The Access and Office library references are adapted to the version of Access you open. Under Vista, programs do not have the privilege to alter the registry.

    Access therefore runs with the last registered library. The code cannot compile using the library of the wrong version, so no code works.

    The screenshot is from Access 2000. It correctly identifies the Office 9.0 library (since no database had been opened using the Office library), but incorrectly attempts to use the Access 12.0 library (since Access 2007 was used previously.)

    To read more about what References are and which ones apply to each version of Access, see Solving Problems with Library References.



    Here are some alternatives.

    Option 1: Modify the Registry

    This suggestion from Graham Mandeno (Access MVP) modifies the Windows Registry so that Access always runs with full permissions:

    Start RegEdit.
    Find the key:
    Right-click it, and choose Permissions.
    In the Permissions dialog, select the Users group.
    Under Permissions for Users check the Allow box beside Full Control.
    Even though the key refers to 9.0, the solution applies to all versions from Access 2000 onwards.

    (As always, exercise care when editing the registry.)

    Option 2: Use Run As Administrator

    Create a shortcut to run each msaccess.exe as an administrator. This allows each version to register itself on start-up.

    To set up this workaround:
    Delete any shortcuts created by installing Office. (These lack the Run As Administrator option.)
    Create shortcuts to msaccess.exe from each version of Office. (Right-drag them from the folder in Computer.)
    Right-click the shortcut, and choose Properties. Click the Advanced button. Check the Run as Administrator box.
    Each time you start Access, you will need to click the Continue button in the User Account Control warning dialog.
    For Access 2007, you can use a normal shortcut, i.e. Run As Administrator is not needed for this version.
    Note: after you make this change, you may need to switch to another version and switch back before Access will register the correct library.
    Option 3: Remove the Safety

    The simplest (and least safe) workaround is to disable UAC, and use an administrative account.

    Warning: This degrades the security of Windows. Malware can install itself as in Windows XP and earlier.

    Assuming you are logged in as a computer administrator, the steps are:
    Open Control Panel.
    Double-click User Accounts.
    Click Turn User Account Control on or off.
    Uncheck the box, Use User Account Control (UAC) to help protect your computer.
    Click Ok.
    You can now switch Access versions as you could under previous versions of Windows. (This does not avoid the reinstallation delay.)

    Option 4: Use separate machines

    In a corporate environment, you may not be permitted to use any of the options above, so you will need a separate machine for each version of Access. These "machines" may be virtual PCs, a computer that multi-boots, or physical computers.

    The Virtual PC might be the quickest way to constantly swap between versions - once you get it started. Disadvantages:

    It requires serious hardware (especially RAM.)
    It is slower to execute. (An emulator is not good for testing.)
    It needs an additional Windows licence.
    If the Virtual PC runs Vista or later, you need separate Virtual PC sessions for each additional version you support.
    Option 5: Reinstall Office every time

    You could run setup.exe from each version of Office every time you wanted to switch versions, but this is no solution. It would require administrative control, be an exercise in frustration with the UAC dialogs, and consume more time than it was worth.

    Why multiple versions?

    If you are asking this question, the entire problem does not apply to you. Chances are, no one else uses the databases you create.

    If you develop databases or support clients who use different versions of Access, you must be able to run multiple versions to:
    Create MDEs.
    Decompile and compile in the target version (to avoid the weird compilation bugs.)
    Test, and trace problems in the same version as your client.
    Make any changes to databases from Access 97 or earlier.

    Featured Post

    Do You Know the 4 Main Threat Actor Types?

    Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

    Join & Write a Comment

    Today's users almost expect this to happen in all search boxes. After all, if their favourite search engine juggles with tens of thousand keywords while they type, and suggests matching phrases on the fly, why shouldn't they expect the same from you…
    I originally created this report in Crystal Reports 2008 where there is an option to underlay sections. I initially came across the problem in Access Reports where I was unable to run my border lines down through the entire page as I was using the P…
    Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
    With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

    745 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    14 Experts available now in Live!

    Get 1:1 Help Now