Microsoft Jet Oledb 40 Download

The OLE DB Provider for Microsoft Jet supports several provider-specific dynamic properties in addition to those that are defined by ADO. As with all other Connection parameters, they can be set by using the Properties collection of the Connection object or as part of the connection string.

4.0

Hmmm... looks like other people are having issues with these recent patches (i.e. Microsoft broke something).

My recommendation would be to uninstall the following patch(es):

OSPatches
Windows 7KB4041678, KB4041681
Windows 8.1KB4041693, KB4041687
Windows Server 2008 R2KB4041678, KB4041681
Windows 10KB4041676, KB4041691
Windows Server 2016KB4041691

Translated from German from here:

In the blog there is this comment , which indicates that Excel files can no longer be linked to Access.

Since the last windowsupdate 10.10.2017, it is no longer possible to link excel files to Access 2000, or to open linked excel files

Since the last Windowsupdate 10.10.2017, it is no longer possible to link Excel files with Access 2000 or to open linked EXCEL files with Access 2000.

And in this comment there is a confirmation or a reference to an Excel database error.

Hello DKPrince,
we probably have the same problem here.
On all Windows 7 computers, we process address databases here, the database .xls can not be >> opened everywhere, since it is said to have no data fields.

In Excel itself, the address lists can be opened without problems, only if we want to link you for the serial letter creation comes a database error.

With .xlsx it goes immediately and with a conversion into a .csv it goes likewise. But we need machine-engineering .xls lists and this is a violent problem.

If someone has a solution, I am grateful for every tip.
Which patch do you have to uninstall again and how do you do it best?

The security updates for Windows 7 / 8.1 (October 2017) , the blog post, mentions that Microsoft patches the Microsoft JET Database Engine with KB4041681 and KB4041678 (Windows 7) as well as Update KB4041693 and KB4041687 (Windows 8.1). This is to close the following safety gaps.

  • CVE-2017-8717 - Microsoft JET Database Engine Remote Code Execution Vulnerability
  • CVE-2017-8718 - Microsoft JET Database Engine Remote Code Execution Vulnerability

In this heise.de forum post , however, a user complains that the Excel access in C # over Microsoft.Jet.OLEDB.4.0 no longer works. The error 0x80004005 (denied access) is reported when accessing the database driver in System.Data.OleDb.OleDbException . Also at askwoody.com there is this comment , which complains a broken Microsoft.Jet.OLEDB.4.0 database interface. No XLS files can be imported into an application (see also this article ). I am currently telling you that the problem for the above problems is to be found here.

Also here:

If you 're looking at problems importing XLS files into your applications, you are not alone. See this anonymous post on AskWoody:

Windows 7 for x64-based Systems KB4041681 and 2017-10 Security Only for Windows 7 for x64-based Systems KB4041678.

Yesterday we got bombarded with the problem that we can not import to xls file into our application, which we have been doing since forever. It gives an error: Unexpected error from external database driver (1). We dug deeper and discovered

Provider = Microsoft.Jet.OLEDB.4.0; DataSource = {0}; ExtendedProperties = 'Excel 8.0; HDR = Yes; IMEX = 1 '

Does not work anymore. After all, we'll get back to normal.

More here:

I created a windows application developed in .NET 3.5 in a 32 bit Windows 2008 server. When deployed the application in a 64 bit server it shows the error 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine '.

So as a solution to this issue, i have changed the build property of the project to X86, so that it will build in 32 bit mode, and rebuild the project in the 32bit machine. But, the same project uses other DB drivers (DB2, SQL etc.) to connect to other databases. So when i deployed my app again in the 64 bit OS, it throws the exception ' Attempted to load a 64-bit assembly on a 32-bit platform. '

I am using the Microsoft.Jet.OLEDB.4.0 driver to read and write to the Excel (.xls)

skolima
20.7k22 gold badges101 silver badges137 bronze badges
neoneo
4,0646 gold badges17 silver badges26 bronze badges

21 Answers

I found a solution for this problem. The issue I described in my question occured basically due to the incompatibility of the Microsoft.Jet.OLEDB.4.0 driver in 64 bit OS.

So if we are using Microsoft.Jet.OLEDB.4.0 driver in a 64 bit server, we have to force our application to build in in 32 bit mode (This is the answer I found when I did an extensive search for this known issue) and that causes other part of my code to break.

Fortunately, now Microsoft has released a 64 bit compatible 2010 Office System Driver which can be used as replacement for the traditional Microsoft.Jet.OLEDB.4.0 driver. It works both in 32 bit as well as 64 bit servers. I have used it for Excel file manipulation and it worked fine for me in both the environments. But this driver is in BETA.

You can download this driver from Microsoft Access Database Engine 2010 Redistributable

Justin Dearing
8,12017 gold badges68 silver badges134 bronze badges
neoneo
4,0646 gold badges17 silver badges26 bronze badges

If the issue persist in ASP.NET,All I had to do was change the 'Enable 32-bit Applications' setting to True, in the Advanced Settings for the Application Pool.

Jason Wicker

Microsoft.jet.oledb.4.0 Download 2007

Jason Wicker
2,8202 gold badges20 silver badges29 bronze badges

I have the same problem

Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

I applied the answer by neo but it did not work until I change the provider to “Provider=Microsoft.ACE.OLEDB.12.0;” in connection string.

Hope this will help if some one face the same issue.

shA.t
13.3k4 gold badges39 silver badges75 bronze badges
IqbalIqbal

I know it's quite old questions and many persons has answered. but I am summarizing the things for understanding:

If the file extension is xls and OS is 32 bit then only you can use 'Microsoft.Jet.OLEDB.4.0'. Microsoft has not released 64 bit version of this driver.

Microsoft.jet.oledb.40 Download

If file extension is xlsx or OS is 64 bit then you must have to use 'Microsoft.ACE.OLEDB.12.0'. The application compiled in 32/64 bit mode does not impact the selection of driver.

Always install the 64 bit driver of Microsoft.ACE.OLEDB.12.0 on OS 64 bit. If you have already installed Office 32 bit then you need to run driver from cmd with /passive argument. This hack works till Office 2013 only, Microsoft stopped this workaround from Office 2016 for Microsoft.ACE.OLEDB.16.0 drivers.

If Application is compiled with AnyCPU flag, it will look for 64 bit Access drivers on 64 bit OS and 32 bit access drivers on 32 bit OS.

Romil Kumar JainRomil Kumar Jain
16.6k7 gold badges43 silver badges81 bronze badges

I've the same message, I have a webpage with do on visual studio 2010, I read a file.xls on that page,in my project visual has not any problem, when I put it on my IIS local throw me a 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine',I fixed that problem next following this steps,

1.-Open IIS
2.-Change the appPool on Advanced Settings
3.-true to enable to 32-bit application.
and that's all

ps.I changed Configuration Manager to X86 on Active Solution Platform

Microsoft Jet Oledb 4.0 Download For Windows Server 2003

leoleo

If your application runs on localIIS, You can solve this problem by enabling 32-bit applications in AppPool's Advanced Settings

Mumin KaMumin Ka

I had the same issue. I changed the application configuration to x86, then it worked!

KakopappaKakopappa

I just Changed my Property of project into x64 format

Project---> Properties--->Build--->Target Framework---> X64

Muhamed ShafeeqMuhamed Shafeeq
8891 gold badge8 silver badges15 bronze badges

We have come across this issue in desktop app.

Dev Environment:Windows 7 Ultimate - 64 bit.Net Framework 4.5Provider=Microsoft.Jet.OLEDB.4.0

It has been resolved by changing Platform target to X86 from Any CPU.Project Properties >> Build >> Platform Target.

TechvalensTechvalens

I ran into this issue with my desktop application ('Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine). I did not have the option to build as a 32 bit app. Hoping this would help others in the same situation.

I did the following and the issue went away:

  1. Installed the 64 bit version of Microsoft Access Database Engine2010 Redistributable, as suggested by neo

  2. Changed my provider to Microsoft.ACE.OLEDB.12.0

robinhood9robinhood9

Although a more optimal solution is to simply recompile as suggested above, that requires access to the source code. In my case, I only had the finished .exe and had to use this solution. It uses CorFlags.exe from the .Net SDK to change the loading characteristics of the application.

  1. Download the .Net Framework SDK (I personally used 3.5, but the version used should be at or above the required .Net for your application.
  2. When installing, all you need is CorLibs.exe, so just check Windows Development Tools.
  3. After installation, find your CorFlags.exe. For my install of the .Net Framework 3.5 SDK, it was at C:Program FilesMicrosoft SDKsWindowsv7.0Bin.
  4. Open a command prompt and type path/to/CorFlags.exe path/to/your/exeFile.exe /32Bit+.

You're done! This sets the starting flags for your program so that it starts in 32 bit WOW64 mode, and can therefore access microsoft.jet.oledb.4.0.

CullubCullub
1,8401 gold badge20 silver badges34 bronze badges

Change in IIS Settings application pool advanced settings.Enable 32 bit application

dpsrikanthdpsrikanth

Just Change the property based on your machine and all have done :-)

Project---> Properties--->Build--->Target Framework---> X64

or

Project---> Properties--->Build--->Target Framework---> X86

AjmalAjmal

I have changed my connection string from

var myConnectionString = string.Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Persist Security Info=True;Jet OLEDB:Database Password=;',gisdbPath);

to this:

var myConnectionString = string.Format('Provider=Microsoft.Jet.OLEDB.4.0;Mode=Share Deny None;Data Source={0};user id=Admin;password=;', gisdbPath);

It works fro me never asked for Microsoft.Jet.OLEDB.4.0'registered.

Dilhan RKDilhan RK

There is indeed no 64 bit version of Jet - and no plans (apparently) to produce one.

You might be able to use the ACE 64 bit driver: http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=23734

  • but I have no idea how that would work if you need to go back to Jet for your 32 bit apps.

However, you may be able to switch the project to 32bit in the Express version (I haven't tried and don't have 2008 installed in any flavour anymore)

Windows
  • there is a thread here that talks about it: http://xboxforums.create.msdn.com/forums/t/4377.aspx#22601

Maybe it's time to scrap Access databases altogether, bite the bullet and go for SQL server instead?

Anant DabhiAnant Dabhi
11k4 gold badges30 silver badges52 bronze badges

I'm using VS2013 for Winforms, the below solution worked for me.

  • Download : http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=23734

  • Then Set VS Target Platform to x86.

A GhazalA Ghazal

In older versions of IIS, you will not find Advance Settings so to enable Enable 32-bit Applications you have to execute the following commands:

cscript %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

and

%SYSTEMROOT%Microsoft.NETFrameworkv2.0.50727aspnet_regiis.exe -i

Reference : Here

Usman KhalidUsman Khalid
1,9137 gold badges30 silver badges60 bronze badges

I was getting same exception while running 'SQL Server 2014 Import and Export Data (64-bit)' on my Windows 8.1.

To fix the issue this issue I have done the following

started SQL Server 2014 Import and Export Data (32-bit) instead of 64-bit and it is working for me. I haven't changed any IIS setting and not installed any extra software.

Banketeshvar NarayanBanketeshvar Narayan
2,1783 gold badges27 silver badges37 bronze badges

I know that I have this problem over and over when I deploy my application on a new server because I'm using this driver to connect to a Excel file. So here it is what I'm doing lately.

There's a Windows Server 2008 R2, I install the Access drivers for a x64 bit machine and I get rid of this message, which makes me very happy just to bump into another.

This one here below works splendidly on my dev machine but on server gives me an error even after installing the latest ODBC drivers, which I think this is the problem, but this is how I solved it.

I replace with the new provider like this below:

But as I do this, there's one thing you should notice. Using the .xlsx file extension and Excel version is 12.0.

After I get into this error message Error: 'Could Not Find Installable ISAM', I decide to change the things a little bit like below:

and yes, I'm done with that nasty thing, but here I got another message The Microsoft Access database engine cannot open or write to the file 'time_zone'. It is already opened exclusively by another user, or you need permission to view and write its data. which tells me I'm not far away from solving it.

Maybe there's another process that opened the file meanwhile and all that I have to do is a restart and all will take start smoothly running as expected.

NickNick

go to Start->Run and type cmdthis starts the Command Prompt(also available from Start->Programs->Accessories->Command Prompt)

type cd .. and press returntype cd .. and press return again (keep doing this until the prompt shows :> )

now you need to go to a special folder which might be c:windowssystem32 or it might be c:winntsystem32 or it might be c:windowssysWOW64try typing each of these egcd c:windowssysWOW64(if it says The system cannot find the path specified, try the next one)cd c:windowssystem32cd c:winntsystem32when one of those doesn't cause an error, stop, you've found the correct folder.

now you need to register the OLE DB 4.0 DLLs by typing these commands and pressing return after each

regsvr32 Msjetoledb40.dllregsvr32 Msjet40.dllregsvr32 Mswstr10.dllregsvr32 Msjter40.dllregsvr32 Msjint40.dll

user1089766user1089766

Microsoft.jet.oledb.4.0 Download Windows 2008 R2

There isn't a 64 bit provider for Jet. If you want to support multiple DB sources including Jet to Excel you will need at least that part of your application to run in a 32 bit process.

The error you are getting when you compile for x86 is a bit strange. I can't see how you would end up referencing 64 bit assemblies in this case.

AnthonyWJonesAnthonyWJones
166k29 gold badges220 silver badges291 bronze badges

protected by CommunityJan 13 '15 at 2:55

Microsoft Jet Oledb 4.0 Installer

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?

Microsoft Jet Oledb 40 Download

Not the answer you're looking for? Browse other questions tagged c#.netoledb32bit-64bitjet or ask your own question.