tranthanhan1962 > 12-10-18, 01:16 AM
(10-10-18, 11:17 AM)lehongduc Đã viết: Chào các Bạn,Tôi không cho rằng unbound form là không cần thiết, vì nếu như vậy thì microsoft chẳng đưa nó vào access để làm gì. Nhưng rõ rằng với một dữ liệu liên kết, khi sử dụng unbund form để giải quyết dữ liệu lưu trữ sẽ gây ra rất nhiều phiền phức, ai tạo được luồng dữ liệu trước đến csdl máy chủ thì lệnh người đó sẽ được thực thi trước. Trường hợp nhiều lệnh truyền một lúc thì sẽ bị lỗi ngay. Bound form thì không như vậy, nó sẽ tranh thủ khóa dữ liệu của người khác trước khi làm việc. Tôi đã từng gặp trường hợp cả hai user đều bị khóa. có lẽ do cả hai đều có quyền tương đương nên khóa lẫn nhau. Cuối cùng một user phải nhường cho user kia là việc trước. Trường hợp này cũng không gặp nhiều. Nhưng cũng có thể lý giải được "chẳng thà không làm việc còn hơn gây ra lỗi". Có lẽ tôi cũng hơi cục bộ khi nói như thế, nhưng rõ ràng micorsoft cũng ít quan tâm đến oubound form trong các tài liệu access. Bản thân access đưa trực tiếp record source vào form cũng thể hiện được cách xử lý không giống VB chính thống đồng thời cũng đưa ra nhiều bộ code để hỗ trợ xử lý của việc này.
Bạn đã viết:
"Vì vậy không ai khuyến khích sử dụng form unbound để thiết kế form chạy mạng, vì form unbound thực sự là một ngôi nhà hoang rất khó quản lý."
Tôi hết sức bối rối khi đọc được nhận định này. Bạn có thể nói rõ hơn được không?
ongke0711 > 12-10-18, 10:46 AM
(11-10-18, 06:14 PM)mrsiro Đã viết: Nếu mình không nhầm thì là ý này
Trích dẫn: Nếu khi tạo quan hệ bạn chọn mục 1, 2 (Enforce Referential Intergrity, Cascade Update Related Record) thì khi bạn xoá record bên Table tham chiếu (table phòng ban của bạn) thì các table khác có mã liên quan sẽ tự động đổi thành Null.
Với trường hợp này thì khi A ấn lưu record vào table nhanvien, trường maphongban là null hay bật lên lỗi không cho lưu luôn.
Nếu cho lưu với trường maphongban là null thì sẽ có vấn đề xảy ra nếu dùng câu select mà có inner join giữa table nhanvien và phongban, kết quả trả về sẽ ko có cái nhân viên có trường maphongban là null.
Ở đây mình muốn bắt lỗi khi không tồn tại giá trị đó ở bảng khóa chính thì không cho lưu giá trị đó vào bảng khóa ngoại luôn.