- Remove From My Forums
-
Вопрос
-
We are having a 64Bit compatibility problem. Something that was working in 32 bit is no longer working in 64 bit. We need a short / Quick solution for the following:
The issue we are having is with the
Microsoft.Jet.OLEDB.4.0 driver. We are using this driver to read and write data to the Excel File (Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=»Excel 8.0;IMEX=1;HDR=YES;»).
But currently the Microsoft.Jet.OLEDB.4.0 is not supported for the 64 bit OS. The topic titled Deprecated MDAC/WDAC Components in the below given link describes about this issue. It also suggests using a new driver (2007 Office System Driver) as a replacement to the current JET driver. But when I did a quick search about this new driver, it says the 2007 Office System Driver is also currently supported in 32 bit OS versions (need to confirm on this)
Ответы
-
-
Предложено в качестве ответа
15 марта 2012 г. 12:40
-
Помечено в качестве ответа
Ed Price — MSFTMicrosoft employee
25 августа 2016 г. 6:59
-
Предложено в качестве ответа
-
-
Помечено в качестве ответа
Michael Sun [MSFT]Microsoft employee
11 января 2010 г. 1:01
-
Помечено в качестве ответа
-
On more addition tp Lingzhi’s post. I am not sure what exactly you need in terms of functionality, but you could try components for Excel from my web site that are developed in .NET and support both 32- and 64-bit modes.
Val Mazur (MVP)
http://www.xporttools.net
-
Помечено в качестве ответа
Michael Sun [MSFT]Microsoft employee
11 января 2010 г. 1:01
-
Помечено в качестве ответа
-
-
Помечено в качестве ответа
Michael Sun [MSFT]Microsoft employee
11 января 2010 г. 1:01
-
Помечено в качестве ответа
I’ve got a 32 bit .net 2.0 app that uses the Jet OLEDB 4.0.
It runs fin on Windows 8 32 bit, but not on the 64 bit. on 64 bit I’m getting an error:
‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local
machine. at
System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString
constr, DataSourceWrapper& datasrcWrapper)
I am aware that you can’t use that database (driver) with a 64 bit EXE. However I’ve not read anything about it not working with the 32 bit exe.
What I tried:
- Installed the MS Access Database Engine 2010 32 bit (and restarted)
- Verified that msjet40.dll is in the «C:WindowsSysWOW64msjet40.dll» directory and registered it with RegSvr32.
So I think (hope) that if I can install the database support it’ll just work.
Problem is, I can’t find any place to download it.
asked Dec 10, 2012 at 23:37
Clay NicholsClay Nichols
11.7k28 gold badges106 silver badges168 bronze badges
4
On modern Windows this driver isn’t available by default anymore, but you can download as Microsoft Access Database Engine 2010 Redistributable on the MS site. If your app is 32 bits be sure to download and install the 32 bits variant because to my knowledge the 32 and 64 bit variant cannot coexist.
Depending on how your app locates its db driver, that might be all that’s needed. However, if you use an UDL file there’s one extra step — you need to edit that file. Unfortunately, on a 64bits machine the wizard used to edit UDL files is 64 bits by default, it won’t see the JET driver and just slap whatever driver it finds first in the UDL file. There are 2 ways to solve this issue:
- start the 32 bits UDL wizard like this:
C:Windowssyswow64rundll32.exe "C:Program Files (x86)Common FilesSystemOle DBoledb32.dll",OpenDSLFile C:pathtoyour.udl
. Note that I could use this technique on a Win7 64 Pro, but it didn’t work on a Server 2008R2 (could be my mistake, just mentioning) - open the UDL file in Notepad or another text editor, it should more or less have this format:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:PathToThedatabase.mdb;Persist Security Info=False
That should allow your app to start correctly.
answered Dec 10, 2012 at 23:54
fvufvu
32.2k6 gold badges60 silver badges79 bronze badges
6
Make sure to target x86 on your project in Visual Studio. This should fix your trouble.
answered May 8, 2015 at 12:44
I’ve got a 32 bit .net 2.0 app that uses the Jet OLEDB 4.0.
It runs fin on Windows 8 32 bit, but not on the 64 bit. on 64 bit I’m getting an error:
‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local
machine. at
System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString
constr, DataSourceWrapper& datasrcWrapper)
I am aware that you can’t use that database (driver) with a 64 bit EXE. However I’ve not read anything about it not working with the 32 bit exe.
What I tried:
- Installed the MS Access Database Engine 2010 32 bit (and restarted)
- Verified that msjet40.dll is in the «C:WindowsSysWOW64msjet40.dll» directory and registered it with RegSvr32.
So I think (hope) that if I can install the database support it’ll just work.
Problem is, I can’t find any place to download it.
asked Dec 10, 2012 at 23:37
Clay NicholsClay Nichols
11.7k28 gold badges106 silver badges168 bronze badges
4
On modern Windows this driver isn’t available by default anymore, but you can download as Microsoft Access Database Engine 2010 Redistributable on the MS site. If your app is 32 bits be sure to download and install the 32 bits variant because to my knowledge the 32 and 64 bit variant cannot coexist.
Depending on how your app locates its db driver, that might be all that’s needed. However, if you use an UDL file there’s one extra step — you need to edit that file. Unfortunately, on a 64bits machine the wizard used to edit UDL files is 64 bits by default, it won’t see the JET driver and just slap whatever driver it finds first in the UDL file. There are 2 ways to solve this issue:
- start the 32 bits UDL wizard like this:
C:Windowssyswow64rundll32.exe "C:Program Files (x86)Common FilesSystemOle DBoledb32.dll",OpenDSLFile C:pathtoyour.udl
. Note that I could use this technique on a Win7 64 Pro, but it didn’t work on a Server 2008R2 (could be my mistake, just mentioning) - open the UDL file in Notepad or another text editor, it should more or less have this format:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:PathToThedatabase.mdb;Persist Security Info=False
That should allow your app to start correctly.
answered Dec 10, 2012 at 23:54
fvufvu
32.2k6 gold badges60 silver badges79 bronze badges
6
Make sure to target x86 on your project in Visual Studio. This should fix your trouble.
answered May 8, 2015 at 12:44
- Home
- Windows
- Drivers
- USB Drivers
- Microsoft Jet Database Engine 3.5
Developer’s Description
The Jet35sp3.exe file contains an update of several DLL files that are included with Microsoft Access 97, Microsoft Office 97 Professional Edition, Microsoft Visual Basic (version 5.0 or later), and other products that incorporate Jet 3.5x. Microsoft Jet database engine version 3.51 provides an improved Compact utility that combines Compact and Repair into a single process. Also, the updated version of the Jet database engine generates an error if it encounters a problem during the Compact process, and then creates the table, MSysCompactError, in the destination database.
Full Specifications
What’s new in version 3.51.3328.0
General
Release December 5, 2008
Date Added December 21, 2000
Version 3.51.3328.0
Operating Systems
Operating Systems Windows 95, Windows 2000, Windows 98, Windows, Windows NT
Additional Requirements None
Popularity
Total Downloads 680,253
Downloads Last Week 14
User Reviews
When an application or a website page hosted on a 64 bit system tries to connect to a Jet driver, you can get this error:
The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine.
You are getting this error because the Jet driver you have installed need 32 bit OS & system to function, Here’s how to update to a new 64-bit compatible database engine:
1/ Download the Microsoft Access Database Engine 2010 Redistributable, you can choose from the 32 bit or 64 bit version depending on your machine and install it on your server
http://www.microsoft.com/download/en/details.aspx?id=13255
2/ in your application or website code, update the connection string from “Provider=Microsoft.Jet.OLEDB.4.0; “ to “Provider=Microsoft.ACE.OLEDB.12.0;”
3/ recompile and run your application
That’s all, but if you don’t want to use the new OLEDB you still can force the Jet OLEDB 4.0 to run on a 64 bit environment : http://www.codicode.com/art/the_microsoft_jet_oledb_4_0_prov.aspx
- Remove From My Forums
-
Question
-
I’ve seen all the posts (hundreds of them) concerning the fact that the Microsoft Jet OLEDB 4.0 provider only works on 32-Bit systems. Really? I’m running Windows Server 2008 Data Center and have an urgent need to run an SQL Job that needs to query an Access database. The job runs DTExec to execute an SSIS package (the Job step is configured with the «Use 32 bit runtime» checked (set to true)). I am getting the follwing error message when I’m on the part of the SSIS package, which is an ‘Execute SQL Task’, which attempts to open the Access Database:
DTExec: The package execution returned DTSER_FAILURE (1).
Started: 2:31:08 PM
Finished: 2:31:12 PM
Elapsed: 4.438 seconds
Microsoft (R) SQL Server Execute Package Utility
Version 10.0.1787.0 for 32-bit
Copyright (C) Microsoft Corp 1984-2005. All rights reserved.
Started: 2:37:14 PM
Error: 2009-04-30 14:37:19.13
Code: 0xC002F210
Source: DoDeletes Execute SQL Task
Description: Executing the query «DELETE From [dbo].[zsong] where [MUZENBR] in (
SE…» failed with the following error: «The OLE DB provider «Microsoft.Jet.OLEDB.4.0″ has not been registered.». Possible failure reasons: Problems with the query, «ResultSet» property not set correctly, parameters not set correctly, or connection not established correctly.
End Error
DTExec: The package execution returned DTSER_FAILURE (1).
Started: 2:37:14 PM
Finished: 2:37:19 PM
Elapsed: 4.422 seconds
I find it highly ridiculous that Microsoft would not care to release a 64-bit driver for Jet OleDb 4.0. There is obviously a need, judging by the hundreds of posts out there with people asking about this.
Or am I missing something? Is there a driver that I just can’t find?
Thanks.
-
Edited by
Thursday, April 30, 2009 8:07 PM
-
Edited by
Answers
-
The Jet OLEDB provider consists of several dlls. You can check if these dlls are installed.
For x64 machines, the 32-bit folder where I expect they live is C:WindowsSyswow64 or C:WinntSyswow64This list (taken from http://support.microsoft.com/kb/278604) seems to cover the Jet dlls:
Microsoft Jet 4.0 OLE DB Provider
Provider=Microsoft.Jet.OLEDB.4.0
C:WINNTSystem32Msjetoledb40.dll
C:WINNTSystem32Msjet40.dll
C:WINNTSystem32Mswstr10.dll
C:WINNTSystem32Msjter40.dll
C:WINNTSystem32Msjint40.dllThis article tells how to see if Jet is installed, and which version is installed, and how to get the latest service pack 8 http://support.microsoft.com/kb/239114/
However, that kb 239114 it says «For computers that are running Windows Server 2008»
If you are running Windows Server 2008, you have a later version of Jet 4.0 than the version that is included with Jet 4.0 SP8.
If you don’t find Jet is installed correctly, I am not totally sure what to do — sounds like Windows is not installed completely, or the feature was not enabled in the add/remove windows components.
Indeed Jet is only 32-bit as Todd mentioned http://support.microsoft.com/kb/957570
Since Jet is included with the OS I expect the install to have been done by one of the *.inf files in the C:Windowsinf. I found several inf files on my Win 7 machine (not a good comparison for you) which cover these dlls such as (syssetup.inf, layout.inf, oem33.inf). I know it is possible to right click and run the install on these .inf files, but since its a windows component, it would be reinstalling windows components too, which I would recommend against on a production server, escpecially a datacenter edition! Must be a high end production server, so I can’t recommend you do that because I’m afraid it would break something else because I haven’t tested it before.
Let us know if you find the dlls or not.
Best wishes, JasonH
Didn’t get enough help here? Submit a case with the Microsoft Customer Support team for deeper investigation — http://support.microsoft.com/select/default.aspx?target=assistance
-
Marked as answer by
Bob Bojanic
Thursday, May 7, 2009 5:09 PM
-
Marked as answer by