Đôi khi, khách hàng của chúng tôi hỏi chúng tôi lựa chọn của họ là gì khi họ cố gắng sử dụng cơ sở dữ liệu Access làm mặt sau của ứng dụng không thành công với:
[Microsoft][ODBC Driver Manager]The specified DSN contains an architecture mismatch between the Driver and Application
Nguyên nhân của sự cố là kiến trúc của trình điều khiển được sử dụng để kết nối với Access khác với kiến trúc của ứng dụng của họ, tức là họ đang cố gắng sử dụng trình điều khiển Access 64 bit với ứng dụng 32 bit. Họ gặp phải trường hợp này vì các phiên bản Access gần đây sử dụng định dạng ACCDB cho các tệp cơ sở dữ liệu của họ và trình điều khiển Access cho các tệp ACCDB chỉ là 64-bit.
(Trình điều khiển được đề cập là trình điều khiển ODBC cho Access. ODBC là công nghệ truy cập dữ liệu cho phép các ứng dụng kết nối với bất kỳ cơ sở dữ liệu nào có trình điều khiển ODBC.)
Với tình huống này, có các giải pháp thay thế sau:
- Thay vào đó, hãy sử dụng cơ sở dữ liệu Access định dạng MDB, trong Microsoft Access, được gắn nhãn Cơ sở dữ liệu Microsoft Access (định dạng 2002-2003) trong hộp thoại Tệp Cơ sở dữ liệu Mới.
Windows bao gồm trình điều khiển ODBC Access 32 bit, tương thích với tệp MDB (nhưng không phải tệp ACCDB.) Bạn sẽ cần định cấu hình nguồn dữ liệu Access trong phiên bản 32 bit của Quản trị viên ODBC để sử dụng trình điều khiển này. Để chạy phiên bản 32-bit của Quản trị viên ODBC, trong hộp thoại Chạy Windows, hãy nhập:
%windir%\syswow64\odbcad32.exe
Tuy nhiên, bạn cần kiểm tra xem bạn có yêu cầu bất kỳ tính năng Access bổ sung nào mà tệp ACCDB cung cấp hay không trước khi thực hiện giải pháp này.
- Cài đặt AccessDatabaseEngine của Microsoft. Điều này cung cấp trình điều khiển ODBC truy cập 32-bit hỗ trợ tệp cơ sở dữ liệu định dạng ACCDB. Tuy nhiên, Windows 8 trở lên không được liệt kê là hệ điều hành được hỗ trợ cho AccessDatabaseEngine.
- Sử dụng Easysoft ODBC-ODBC Bridge, cho phép ứng dụng 32 bit sử dụng trình điều khiển ODBC 64 bit (và ngược lại).