PRB: The Jet VBA File Failed to Initialize When Called (191735)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
    • Microsoft Visual C++, 32-bit Professional Edition 5.0

This article was previously published under Q191735

SYMPTOMS

Some application or driver setups might not perform version checking, and therefore overwrite newer DLLs with an older Msvcrt.dll and Mfc.dll. When this happens and an MFC application tries to open an Access database using MFC DAO, the following error is received:
The Jet VBA file VBAJET.DLL for 16-bit versions, or VBAJET32.DLL for
32- bit versions failed to initialize when called.
This article exemplifies a particular driver setup which causes this error.

CAUSE

Some installation programs replace Msvcrt.dll and Mfc42.dll system files in the System32 folder with:

  • Msvcrt.dll (5.0.0.7128)
  • Mfc42.dll (5.0.0.7128)

RESOLUTION

Replace the Msvcrt.dll (5.0.0.7128) and Mfc42.dll (5.0.0.7128) with Msvcrt.dll (5.0.0.7303) and Mfc42.dll (5.0.0.7303) or newer respectively, obtained from Visual Studio 97 Service Pack 3 or later.

For additional information about the Visual Studio 97 Service Pack 3, please see the following article in the Microsoft Knowledge Base:

170365 INFO: Visual Studio 97 Service Packs - What, Where, and Why

MORE INFORMATION

Steps to Reproduce Behavior

  1. Create an Access Database.
  2. Create a DSN to access the Database created in step 1.
  3. Create an MFC Database application that uses the DSN created in step 2.
  4. Install the offending program or overwrite the existing Msvcrt.dll and Mfc42.dll with the older versions.
  5. Run the application created in step 3.
  6. The following error message appears:
    The Jet VBA file VBAJET.DLL for 16-bit versions, or VBAJET32.DLL for
    32-bit versions failed to initialize when called.

Modification Type:MajorLast Reviewed:11/18/2003
Keywords:kb3rdparty kbDatabase kberrmsg kbprb KB191735