Validation là việc cho phép nhập nội dung theo một trật tự, nguyên tắc nào đó. Tất nhiên là cũng có thể làm được với tình huống này nhưng rất phức tạp.
Cách đơn giản và dễ nhất là theo hướng sử dụng Macro hoặc mã VBA.
Các bước bạn cần làm như sau:
1. Mặc định khi chạy form/ sang bản ghi khác thì khóa/mở khóa Hộp Textbox Tên nước ngoài tùy theo trạng thái của Combo Tính chất
2. Viết thủ tục thực hiện khóa/ mở khóa hoặc thiết kế Macro
Vì việc mở/đóng khóa này do 2 thứ quy định:
+ Khi Form chuyển sang bản ghi mới thì nó tự tải thông tin từ Bảng vào
+ Khi người dùng thay đổi thông tin trên ComboBox
Ở đây mình hướng dẫn một Macro (vì bạn để tên các đối tượng là tiếng việt hết nên bạn sẽ không thể viết được mã VBA)
Góp ý:
Bản thiết kế của bạn toàn dùng tên trường/ bảng bằng tiếng Việt - điều này sẽ gây ra lỗi không báo trước trong một số trường hợp!
Việc bạn để NNhayVN là trường dùng chữ Việt Nam/ Nước ngoài làm thông tin kiểm tra thì e rằng không ổn. Nên sửa thông tin kiểm tra là số thay vì tiếng việt như vậy.
Bạn hãy xem - mình sửa cho bạn và nghiên cứu nhé - như thế dễ kiểm soát hơn.
Nguồn của Combo145 là như sau
SELECT [Nơi cư trú].ID, [Nơi cư trú].[Nơi cư trú] FROM [Nơi cư trú];
ColumnCount (số cột) là 3
ColumnWidths là 0";0";1" (để giấu cột 1)
BoundColumn là 1 để lấy giá trị số và đưa vào CSDL - Việt Nam sẽ là 1, Nước ngoài sẽ là 2
Nhấn vào Combo 145, chọn Property, chọn Event, chọn After Update, chọn [mcrSetItem] và bạn sẽ thấy Macro mình viết
Tương tự, ở sự kiện FormCurrent (khi form chuyển bản ghi, mình cũng kích hoạt mcrSetItem)
Bạn tải file ứng dụng ở đây
http://www.sfdp.net/thuthuataccess/Hosok...ects=0&d=1