2013-10-30 23 views
5

Nhà cung cấp Microsoft.ACE.OLEDB.12.0 'không được đăng ký trên máy cục bộ.Thực hiện kết nối với MS Access

Microsoft.Jet.OLEDB.4.0' nhà cung cấp không được đăng ký trên máy cục bộ.

là cả hai lỗi đối với tôi. Tôi đã thử cả khi đang cố tạo kết nối Access. Tôi không chắc phải làm gì nữa.

Tôi có văn phòng 32 bit trên máy 64 bit. Tôi tìm thấy các giải pháp mà họ nói để cài đặt Cơ sở dữ liệu truy cập nhưng nó sẽ không cho phép tôi cài đặt 64 bit với văn phòng 32 bit. Một nguồn khác được đề cập để bỏ qua điều này bạn có thể đi vào dòng lệnh và làm $> AccessDatabaseEngine_X64.exe /passive nhưng thụ động không được nhận dạng như một lệnh.

Tôi tìm thấy một giải pháp tiềm năng khác để tải xuống trình điều khiển hệ thống Office và các thành phần sau đó thêm cơ sở dữ liệu truy cập dưới dạng nguồn nhưng điều đó không hoạt động. Tôi đang hết ý tưởng nó sẽ được đánh giá rất cao nếu ai đó có thể giúp đỡ.

Các liên kết đến bài viết tôi đề cập đến:

+3

Thử chạy như một quá trình 32-bit. – SLaks

+0

Có, tôi sẽ thử điều này cũng như –

+0

làm thế nào để bạn làm điều đó? –

Trả lời

2

Nếu bạn đã có 32-bi Văn phòng được cài đặt sau đó bạn bị kẹt khá nhiều với phiên bản 32-bit của Cơ sở dữ liệu truy cập (a.k.a. "ÁT CHỦ"). Như bạn đã tìm thấy, có một cách để buộc ACE 64 bit vào một máy đã có các thành phần Office 32 bit trên đó, nhưng cá nhân tôi sẽ không "đi đến đó".

Vì vậy, bạn cần định cấu hình dự án C# của mình để chạy dưới dạng 32 bit. Bạn có thể làm điều đó bằng cách chọn Platform: x86 trên tab Build của Properties của dự án:.

Platform.png

(ảnh chụp màn hình đó đã được đưa vào một máy ảo 32-bit, do đó cấu hình mặc định đã là 32-bit Giá trị mặc định thiết lập trên máy 64-bit nên "Bất kỳ CPU".)

Để xác minh môi trường mà quá trình đang chạy, bạn có thể sử dụng

String.Format("I am running as {0}-bit.", IntPtr.Size * 8) 

Ví dụ, trong một ứng dụng Windows Forms bạn cou sử dụng ld

MessageBox.Show(String.Format("I am running as {0}-bit.", IntPtr.Size * 8)); 

Điều đó sẽ hiển thị

I am running as 32-bit. 
+0

Sự cố vẫn tiếp diễn: ( –

+0

@JohnSmith Tôi đã cập nhật câu trả lời của mình bằng mã để xác minh môi trường mà quy trình đang chạy. Vui lòng xác nhận rằng ứng dụng của bạn thực sự hiện đang chạy dưới dạng 32 bit. –

+0

Cảm ơn rất nhiều vì đã giúp đỡ, làm việc ngay bây giờ –

Các vấn đề liên quan