Nguyễn Đăng Toản > 03-09-18, 09:20 PM
(03-09-18, 09:03 PM)ongke0711 Đã viết: - [MA PHONG] là tên hộp thoại để bạn nhập cái DEPTCODE. KHông thể dùng nó trong hàm IIF.
IIF([DEPTCODE]=121,...,...)
- Tham số trả về khi diều kiện SAI của hàm IIF của bạn là chuỗi rỗng "", nó không đúng với dạng dữ liệu cột CIFNO (dạng số).
- Tham số trả về khi điều kiện ĐÚNG (trả về "IN(..)) cũng không đúng kiểu xử lý của Access nên nó không hiểu trong query.
- Logic xử lý hàm IIF của bạn nó không hợp lý.
Nói về xử lý table của bạn.
- Nếu CIF thuộc 150 nhưng chuyển giao cho 121 quản lý thì nó thể hiện ở Field nào? bạn dùng nó trong query luôn
ongke0711 > 03-09-18, 11:31 PM
Nguyễn Đăng Toản > 03-09-18, 11:45 PM
(03-09-18, 11:31 PM)ongke0711 Đã viết: Bạn nói rõ lại bạn muốn lọc nhưng dữ liệu gi?
Vậy 2 cái mã CIF bạn đề cập ở trên vừa có DEPTCODE là 121 vừa có 150? tức là dữ liệu trùng lặp trong table này (2 dòng cùng CIFNO)?
ongke0711 > 04-09-18, 12:08 AM
Nguyễn Đăng Toản > 04-09-18, 12:20 AM
(04-09-18, 12:08 AM)ongke0711 Đã viết: Bạn dùng câu lệnh SQL này thử xem:
PARAMETERS [MA PHONG] Short;
SELECT [T-Cdmast_date].ACNAME, [T-Cdmast_date].CIFNO, [T-Cdmast_date].DEPTCODE
FROM [T-Cdmast_date]
WHERE ((([T-Cdmast_date].DEPTCODE)=[MA PHONG])) OR ((([T-Cdmast_date].CIFNO) In (7441468,7441271)));
ongke0711 > 04-09-18, 12:54 AM
Nguyễn Đăng Toản > 04-09-18, 08:17 PM
(04-09-18, 12:54 AM)ongke0711 Đã viết: - Vậy thì báo bạn luôn là IIF không giải quyết được. Các trường hợp của bạn đưa ra nó thủ công hoàn toàn và không có một table, field nào lưu trữ thông tin phục vụ cho Query truy vấn.
- Không ai thiết kế CSDL để mỗi khi có thay đổi gì thì vô query thay đổi thủ công lại các công thức, tham số. Bên cạnh đó cú pháp qui định của hàm IIF như đã nói trên không phù hợp để giải quyết các trường hợp đề ra của bạn.
- Có một giải pháp khác là bạn tạo thêm bảng phụ lưu thông tin các mã CIFNP, DEPTCODE đã bàn giao. Sau đó dùng Union Query để gộp 2 bảng tại -> dùng Select Query thông thường với điều kiện lọc mà [MA PHONG]
Vd: Tạo Table mới tên T-TransDept
CIFNO | DEPTTRANSFERD
----------------------------------
7441468 | 121
7441271 | 121
1234567 | 150
- Tạo Union Query: đặt tên là quniCIFALL
SELECT [T-Cdmast_date].ACNAME, [T-Cdmast_date].CIFNO, [T-Cdmast_date].DEPTCODE
FROM [T-Cdmast_date]
UNION ALL
SELECT "", [T-TransDept].CIFNO, [T-TransDept].DEPTTRANSFERD
FROM [T-TransDept];
- Tạo Select query lọc theo [MA PHONG]:
PARAMETERS [MA PHONG] Short;
SELECT [quniCIFALL].ACNAME, [quniCIFALL].CIFNO, [quniCIFALL].DEPTCODE
FROM [quniCIFALL]
WHERE (([quniCIFALL].DEPTCODE)=[MA PHONG]));