Bạn muốn cột "Tên Công trình" không được nhập trùng. cột "Tên Công trình" không phải khoá chính để có thể sửa đổi. Hãy làm theo cách sau.
+ Mục: Invalid value error: Ta nhập thông báo
IF(ISBLANK([_thisrow].[Tên Công trình]),TRUE,IF(NOT(IN([_thisrow].[ID],DSCongTrinh[ID])),NOT(IN([_thisrow].[Tên Công trình],DSCongTrinh[Tên Công trình])),IF([_Thisrow].[Tên Công trình]=LOOKUP([_thisrow].[ID],"DSCongTrinh","ID","Tên Công trình"),NOT(IN([_thisrow].[Tên Công trình],DSCongTrinh[Tên Công trình]-LIST([_thisrow].[Tên Công trình]))),NOT(IN([_thisrow].[Tên Công trình],DSCongTrinh[Tên Công trình])))))
Giải thích
Điều kiện: ISBLANK([_thisrow].[Tên Công trình])Kiểm tra xem ô Tên Công trình trong hàng hiện tại có trống hay không.Kết quả nếu điều kiện đúng: trueNếu ô Tên Công trình trống, trả về giá trị true.
Hàm IF thứ hai:
Điều kiện: not(in([_thisrow].[ID],DSCongTrinh[ID]))Kiểm tra xem ID của công trình trong hàng hiện tại có tồn tại trong bảng DSCongTrinh hay không.Kết quả nếu điều kiện đúng:
Hàm IF thứ ba:
Điều kiện: not(in([_thisrow].[Tên Công trình],DSCongTrinh[Tên Công trình]))Kiểm tra xem tên công trình trong hàng hiện tại có tồn tại trong bảng DSCongTrinh hay không.Kết quả nếu điều kiện đúng:trueNếu cả ID và tên công trình đều không tồn tại trong bảng DSCongTrinh, trả về true.Kết quả nếu điều kiện sai:not(in([_thisrow].[Tên Công trình],DSCongTrinh[Tên Công trình]-list([_thisrow].[Tên Công trình])))Kiểm tra xem tên công trình trong hàng hiện tại có trùng với bất kỳ tên công trình nào trong bảng DSCongTrinh ngoại trừ chính tên công trình đó hay không.Kết quả nếu điều kiện đúng:trueNếu tên công trình trùng với một tên khác trong bảng DSCongTrinh, trả về true.Kết quả nếu điều kiện sai:falseNếu tên công trình không trùng với bất kỳ tên nào trong bảng DSCongTrinh, trả về false.Kết quả nếu điều kiện sai:falseNếu ID của công trình tồn tại trong bảng DSCongTrinh, trả về false.
Kết luận:
- Công thức này dùng để kiểm tra xem một công trình có hợp lệ hay không dựa trên hai tiêu chí:
- ID công trình phải tồn tại trong bảng DSCongTrinh.
- Tên công trình không được trùng với bất kỳ tên công trình nào khác trong bảng DSCongTrinh (trừ chính tên công trình đó).
Ví dụ
- Nếu ô Tên Công trình trong hàng hiện tại trống, công thức sẽ trả về true.
- Nếu ô Tên Công trình là "Công trình D" và ID của công trình không tồn tại trong bảng DSCongTrinh, công thức sẽ trả về true.
- Nếu ô Tên Công trình là "Công trình B" và ID của công trình tồn tại trong bảng DSCongTrinh, công thức sẽ trả về false.
- Nếu ô Tên Công trình là "Công trình A" và ID của công trình tồn tại trong bảng DSCongTrinh, công thức sẽ trả về false.
- Hàm ISBLANK: Kiểm tra xem ô có trống hay không.
- Hàm IN: Kiểm tra xem một giá trị có tồn tại trong một danh sách hay không.
- Hàm LOOKUP: Tìm kiếm giá trị tương ứng trong một bảng dựa trên một cột nhất định.
- Hàm LIST: Chuyển đổi một giá trị thành danh sách.