[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 6863
  • Last Modified:

Microsoft Access was unable to initialize the Windows Registry

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.
1 Solution
Jeffrey CoachmanCommented:
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

deecee13Author Commented:
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.
Jeffrey CoachmanCommented:
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?

NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

deecee13Author Commented:
It wasn't really a solution, it was more of a 'why would you even want to'.
Jeffrey CoachmanCommented:
Try running the 12yo app in XP compatibility mode.  It works for our 12yo app!  :-)
Sam RavenscroftIT ConsultantCommented:
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

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now