Lỗi The Microsoft.Jet.OLEDB.4.0 hoặc Microsoft.ACE.OLEDB.12.0 provider is not registered on the local machine
Gửi ngày 23 tháng 5 năm 2013

1. Web Application

Khi bạn chạy trang web của mình báo lỗi The ‘Microsoft.Jet.OLEDB.4.0′ hoặc 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. Lỗi ngày xảy ra thông thường do 1 trong 2 trường hợp sau:

Máy bạn không cài Office 2007 Jet drivers
Hoặc là bạn chạy ứng dụng 32 bit trong môi trường x64 mặc định

Để giải quyết lỗi trên bạn có thể dùng một trong hai giải pháp sau:

Thứ nhất, tải 2007 Office System Driver của Microsoft về cài đặt (đây là cách dễ nhất)

Cách thứ hai,

Đối với Windows 2008: Vào Server Manager > Roles > Web Server (IIS) > Internet Information Services (IIS) Manager, nhìn vào phía dưới tên máy tính bạn > Application Pool.

Đối với Windows 7, 8: Vào Programs > Administrative Tools > Internet Information Services (IIS) Manager, nhìn vào phía dưới tên máy tính bạn > Application Pool.



Chọn DefaultAppPool, hoặc Pool riêng -> Advanced Settings … thiết lập thuộc tính Enable 32-Bits Applications từ False thành True, xem hình bên dưới:



Cuối cùng là restart lại IIS, sau đó chạy lại ứng dụng bạn. Bây giờ lỗi không còn nữa.

2. Win Application

Lỗi này là do bạn chạy Windows 64bit mà Microsoft.Jet.OLEDB.4.0 hoặc Microsoft.ACE.OLEDB.12.0 chỉ hỗ trợ 32bit.
Bạn đổi App sang ứng dụng 32bit là xong.

Cách đổi:
Vào Menu Project/ProjectName Properties.
Trong cửa sổ Project Properties chọn Build.
Trong Build chọn Platform target: x86 thay vì Any CPU.

Cách khác:
Vào Configuration Manager (click ô Combo Debug) hoặc phải chuột vào Solution project để chọn.
Tiếp Chọn Platform (để chuyển từ Any CPU qua x86)
Nếu không có sẵn x86 trong Platform thì chọn New, phần New Platform chọn x86.
Sau đó
copy db Access từ trong Bin/Debug (nếu chạy Any CPU) qua Bin/x86/Debug (nếu chạy x86).

Print In tin
Download CTIM - Diễn Đàn Tin Học CTIM