Có vẻ như tôi không phải là người duy nhất có vấn đề này, nhưng dường như không có vấn đề gì với vấn đề này.Các trường bool dễ vỡ trong các bảng được liên kết MS Access
Tôi đang làm việc trong Access 2010, sử dụng bảng được liên kết với cơ sở dữ liệu SQL Server 2005 (thông qua một ống ODBC của SQL Server). Trong bảng đó, một trong các trường boolean được đánh dấu là nullable và một số bản ghi trong bảng này thực tế có một null trong trường. Càng xa càng tốt.
Trong truy cập đi kèm, và ngay sau khi bạn mở bảng được nối kết, Access hiển thị 0 (sai) thay vì ô trống (vấn đề # 1). Và nếu bạn cố gắng sửa đổi bất cứ điều gì trong hồ sơ, bạn nhận được một thông báo lỗi nói rằng hồ sơ đã được sửa đổi bởi người khác và thay đổi của bạn không thể được lưu. Vấn đề cuối cùng này là do thực tế là Access không chấp nhận các trường bool nullable, và đi một chút hạt khi cố gắng lưu giá trị. Nghiên cứu của tôi cho thấy rằng điều này có thể có một cái gì đó để làm với truy cập bằng cách sử dụng máy bay phản lực trong nền để kết nối với cơ sở dữ liệu SQL Server, và máy bay phản lực dường như không hỗ trợ bool nullable. Có vẻ như không phải là một cách để cấu hình Jet để hỗ trợ điều này (mặc dù có lẽ có, nếu bạn đang kết nối trong mã). Tôi cũng nghĩ MS đã thay thế Jet bằng một công nghệ khác được sử dụng trong Office 2010 (ACE, tôi nghĩ), nhưng không thể biết đây có phải là những gì đang được Access sử dụng hay không. Trong cả hai trường hợp, tôi không thể tìm thấy các tùy chọn có thể cấu hình liên quan đến các bool nullable.
Cuối cùng, vấn đề này dường như đã được đưa lên đến MS trong một thời gian ngắn trước đây, nhưng không có câu trả lời trên cuối cùng của họ: https://connect.microsoft.com/SQLServer/feedback/details/617339/null-bit-fields-produce-spurious-ms-access-errors-when-using-the-native-odbc-driver?wa=wsignin1.0#tabs
Tôi tự hỏi nếu bất cứ ai khác ngoài kia đã chạy vào trong này và tìm thấy một dung dịch. Và trước khi bạn đề xuất nó, lấy tùy chọn nullable off và thiết lập tất cả các null thành 'false' không thực sự là một lựa chọn trong trường hợp của chúng ta. Đối với chúng tôi, null thực sự là một trạng thái hợp lệ và rất khác với 'false.
Thx!
Đây là sự cố đã biết kể từ khi truy cập 97: http://support.microsoft.com/kb/278696/EN-US. Vì không có gì thay đổi trong 14 năm qua, tôi không mong đợi bất kỳ sửa chữa nào sớm ... – Heinzi