Solved

DAO Error 3447

Posted on 2000-03-12
3
366 Views
Last Modified: 2013-12-25
I keep getting this error (3447) when I open any project or exe. It suggests I re-install the app. that caused the error. I have done so to no avail. Also re-installed VB5, VBAJet32.dll, DAO35.dll and run Norton Utilities. Also checked the Jet3.5 Engines file in the register but all entries seem to be normal. Any ideas?
0
Comment
Question by:ianch
  • 2
3 Comments
 

Author Comment

by:ianch
ID: 2610656
Adjusted points to 75
0
 
LVL 2

Accepted Solution

by:
alokanant earned 75 total points
ID: 2610848
Hi janch,

Here is the solution from MSDN

PRB: Error "The Jet VBA File...Failed to Initialize When Called"

--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Visual Basic Professional and Enterprise Editions for Windows, versions 5.0, 6.0

--------------------------------------------------------------------------------


SYMPTOMS
When you run an application that uses Microsoft DAO, you receive the following error message (run-time error 3447):



The Jet VBA file (VBAJET.dll for 16-bit versions, or VBAJET32.dll for 32-bit versions) failed to initialize when called. Try reinstalling the applications that returned the error.



CAUSE
The Microsoft DAO or Jet files are mismatched, or one or more of the DAO or Jet files is missing.

This error most commonly occurs when you deploy a Visual Basic 5.0 application from a development computer that has the Visual Studio 6.0 versions of the DAO and Jet files installed. The Jet files that come with the Visual Studio 6.0 products require an additional file, Expsrv.dll. Because the Vb5dep.ini file does not include this file in the dependency information for Jet, the Visual Basic 5.0 Setup Wizard does not include Expsrv.dll in the Setup files for your application.



RESOLUTION
Use one of the following resolutions, depending upon your situation.

Expsrv.dll Is Missing from Setup Files
If you are deploying a Visual Basic 5.0 application from a development computer that has the Visual Studio 6.0 versions of the DAO and Jet files installed, you can work around the problem by adding Expsrv.dll in the File Summary screen of the Setup Wizard. However, you might encounter problems distributing other updated components.

The safest alternatives are as follows:
Develop and create setup files for your Visual Basic 5.0 application on a "clean" computer. (See the MORE INFORMATION section later in this article.)

-or-


Upgrade the application to Visual Basic 6.0 and create the setup files using the Package and Deployment Wizard (PDW).

-or-


Download and install the latest MDAC components from:

http://www.microsoft.com/data/

Then run the setup for your application again.





Other DAO or Jet Files Are Missing or Mismatched
According to the master list of dependency files for Visual Basic 5.0 and 6.0 (Vb5dep.ini and Vb6dep.ini, respectively), the following files are required for DAO and Jet. Check for these files with the appropriate version numbers on the computer where the error occurs.

If you distribute an application using a Setup created by the Setup Wizard or Package and Deployment Wizard, you also need to check the file Setup.lst to verify the appropriate files and file version numbers. Setup.lst is the master list of the files that are installed by the application setup. You can find Setup.lst in the folder that contains the setup files for your application.

NOTE: All of these files are located in the \Windows\System (or on Windows NT, in the \Winnt\System32) folder, except DAO350.dll. The DAO350.dll file can be found in the \Program Files\Common Files\Microsoft Shared\DAO folder.
Visual Basic 5.0 Files and Version Numbers:
DAO350.dll     3.50.3602.0
MSJet35.dll    3.50.3602.4
MSJInt35.dll   3.50.3602.5  
MSJtEr35.dll   3.50.3602.0  
MSRD2x35.dll   3.50.3602.0
MSRepl35.dll   3.50.3602.0  
MSVCRT40.dll   4.10.6038 or later
VB5DB.dll      5.00.3724
VBAJet32.dll   5.0.7122
Visual Basic 6.0 Files and Version Numbers:
DAO350.dll     3.51.1608.0
ExpSrv.dll     6.0.8167
MSJet35.dll    3.51.0623.4
MSJInt35.dll   3.51.0623.0
MSJtEr35.dll   3.51.0623.0
MSRepl35.dll   3.51.0623.0
MSRD2x35.dll   3.51.0623.0
MSVCRT40.dll   4.21.0000 or later
VB5DB.dll      6.00.8169
VBAJet32.dll   6.1.8167


For more information about the files installed for each version of Jet, please refer to the following article in the Microsoft Knowledge Base:

Q178880 INFO: Identifying the Jet Database Engine Components


If you determine that the version of a file on the system is incorrect, perform the following steps to replace it. If you determine that a file is missing, skip to step 3.


If the file is one that requires registration (MSRD2x35.dll, MSJet35.dll, or DAO350.dll), perform the following steps to unregister it:


On the taskbar, click the Start button, and then click Run.


In the Run dialog, type the following command:
Regsvr32.exe /u <DLL Name>
where DLL Name is the name of the DLL file, such as DAO350.dll.


Click OK.


Rename the mismatched file.


Copy the appropriate version of the mismatched or missing file from the Visual Basic product CD to the computer experiencing the problem.

NOTE: For Visual Basic 6.0, all the files are located in the OS\System folder on Disk 1.

For Visual Basic 5.0, all the files, except DAO350.dll, are located in the OS\System folder on the Visual Basic CDs and the VB5.0\OS\System folder on the Visual Studio 97 CDs. DAO350.dll is located in the OS\MSAPPS\DAO folder on the Visual Basic CDs and the VB5.0\OS\MSAPPS\DAO folder on the Visual Studio 97 CDs.


If the file is one that requires registration (MSRD2x35.dll, MSJet35.dll, or DAO350.dll), register it using the following steps:


On the taskbar, click Start, and then click Run.


In the Run dialog box, type the following command:


Regsvr32.exe <DLL Name>
where DLL Name is the name of the DLL file, such as DAO350.dll.


Click OK.


As an alternative solution, you can run the DAO SDK redistribution setup on the target computer that has missing or mismatched DAO or Jet files. The DAO SDK redistribution is provided in the DAOSDK\REDIST folder on Disk 1 of Visual Studio 6.0 Professional Edition and Disk 3 of Visual Studio 6.0 Enterprise Edition. It consists of three folders -- Disk 1, Disk 2, and Disk 3. You can either run Setup.exe from the Disk 1 folder on the CD, or you can copy each of the folders to a diskette and run Setup.exe from the first diskette.



MORE INFORMATION
If you have multiple versions of Visual Basic or Visual Studio on the same computer, it typically does not alter the development environment. However, regarding application deployment, multiple versions can cause a Visual Basic application to fail to install correctly. This can be caused by newer versions of components that exist on the computer and the inability of the installation application to correctly determine dependency information or register those components. To ensure good distribution of your application, the development machine should have only the necessary version of Visual Basic or Visual Studio installed.

For additional information, please see the following article in the Microsoft Knowledge Base:

Q193270 INFO: Troubleshooting VB Application Installation Issues



REFERENCES
For additional information, please see the following articles in the Microsoft Knowledge Base:

Q196057 PRB: The Jet VBA File VBAJet32.dll Failed to Initialize


Q191735 PRB: The Jet VBA File Failed to Initialize When Called




Additional query words: distribute deploy

Keywords : kbwizard kbAppSetup kbVBp500 kbGrpVB
Version : WINDOWS:5.0,6.0
Platform : WINDOWS
Issue type : kbprb
 

PRB: The Jet VBA File VBAJet32.dll Failed to Initialize

--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Visual Studio 6.0
Microsoft Visual Basic Professional and Enterprise Editions for Windows, versions 5.0, 6.0
Microsoft Visual C++, 32-bit Editions, version 6.0

--------------------------------------------------------------------------------


SYMPTOMS
If you created a setup program for a DAO application using Visual Basic 5.0 or Visual C++ 5.0 and you upgraded to version 6.0 of those products, you will receive the following runtime error (3447) when you attempt to run the application on a distributed computer:

The Jet VBA file (VBAJet.dll for 16-bit versions, or VBAJet32.dll for 32-bit versions) failed to initialize when called. Try reinstalling the applications that returned the error.



CAUSE
Applications like Visual Basic 6.0 and Visual C++ 6.0 install new versions of the DAO and Jet files on your development computer. Any version of VBAJet32.dll 6.0.1.8132 or later is now dependent on the file Expsrv.dll. The error occurs with your original setup program because it does not include Expsrv.dll in the dependency information.



RESOLUTION
To resolve the error, do one of the following:

Manually add Expsrv.dll to your file list for your existing setup program.


Re-create a new setup program from scratch that includes this new dependency.





MORE INFORMATION

Steps to Reproduce Behavior
Create a DAO application and redistribution using Visual Basic 5.0 or Visual C++ 5.0.


Upgrade the computer to version 6.0 and rebuild your setup file.


Run the version 6.0 setup on a clean computer.


RESULT: When you try to run the application, you receive run-time error 3447.

(c) Microsoft Corporation 1998, All Rights Reserved. Contributions by Rick Anderson, Microsoft Corporation.


Additional query words:

Keywords : kbAppSetup kbJET kbVBp600 kbVC600 kbVS600
Version : WINDOWS:5.0,6.0; winnt:6.0
Platform : WINDOWS winnt
Issue type : kbprb

hth
alok
0
 

Author Comment

by:ianch
ID: 2613981
And so quick.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

760 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

21 Experts available now in Live!

Get 1:1 Help Now