Sửa lỗi Microsoft.Jet.OLEDB.4.0 provider
Việc tạo ra ứng dụng windows phát triển trong .NET 3.5 trên Windows Server 2008 bản 32 bits. Thì khi triển khai ứng dụng trong server 64 bits nó sẽ hiển thị một cái lỗi ngớ ngẩn: "Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine".
Việc tạo ra ứng dụng windows phát triển trong .NET 3.5 trên Windows Server 2008 bản 32 bits. Thì khi triển khai ứng dụng trong server 64 bits nó sẽ hiển thị một cái lỗi ngớ ngẩn: "Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine".

Nếu cách thông thường, bạn sẽ phải thay đổi lại việc xây dựng thuộc tính của project X86 từ chế độ 32 bits sang 64 bits. Đây là điều không cần thiết.

Cách để fix lỗi này:
1. Vào IIS
2. Chọn DefaultAppPool chọn Advanced Settings
3. Tại General chọn enable to 32-bit application để là true.

Như vậy là bạn đã thay đổi quản lý cấu hình X86 trên Active Solution Platform. Giờ bạn có thể chạy project của mình xem thế nào.

Nếu không được có thể thử:

Nguyên nhân Lỗi connect access của win 64 ko hỗ trợ access search trên microsoft lãm dịch nhé đại khái đơn giản là sửa lại hàm đọc file 

tiếng việt cách chỉnh sửa cơ bản [You must be registered and logged in to see this link.]
ko đc thì dưới
view [You must be registered and logged in to see this link.] tìm hướng giải quyết code hoặc


onnecting to MS Access on Windows 64-Bit


Folks, like many of you I struggled with the deprecation of JET 4.0 in Windows Vista/7 on 64-bit machines. A process running simply for years, ported to a faster machine simply stopped working with the error: 'Microsoft.Jet.OLEDB.4.0' provider is not registered. I was annoyed at the lack of notice from MS and lack of clear instructions. After tinkering I found the solution and I’ll post it first directly, with details after, for the benefit of those just as frustrated as I. The situation I describe is for VB, but may work in other code/environments.


1. Download and run AccessDatabaseEngine_x64.exe


(http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=en)

2. Change the connection string in your code to:

Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ= <-db name and path here


There is no need to upgrade/replace JET or emulate 32-bit connections. You don’t have to buy a new version of MS Office/Access, Access does not even need to be installed on the machine, you just need the driver. No need to convert to SQL Express. My legacy code is now running flawlessly on Windows 7 quad 64-bit machine without any office apps installed.

When I first encountered the issue I tried to replace/upgrade JET but it was not available for 64-Bit and there were no plans to create it. Apparently, there is now a version released for 64-bit windows but you don’t need it. The MS Access Driver exists on older platforms as well and can be used instead of JET on 32-bit machines as well. However, there is one important detail concerning “*.accbd”, you must include this in the string or it wont work. Many examples posted on the web look like this: Driver={Microsoft Access Driver (*.mdb)} But it will produce an error in some cases indicating the DB and driver were not supplied in the string. *.accdb needs to be included as well.

Replace: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=

With: Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=

Full pseudo code:


dbLocation = "C:\dbstore\myAccess.mdb"

Set objADO = CreateObject("ADODB.Connection")

objADO.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & dbLocation



All other SQL calls and objects are unchanged.



Have not tried yet in C++, or with Excel, or as a DNS location, but test it yourself.

10/19/2017 10:22:58 PM