• Cách lồng hàm in trong hàm IIF khi tạo truy vấn
  • Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    Nguyễn Đăng Toản > 03-09-18, 07:14 PM

    E có thắc mắc mong các anh chị giúp giải đáp:

    Ví dụ em tạo truy vấn trong criteria khi để 1 mình hàm in (giá trị 1, giá trị 2) thì access hiểu và bảng chạy ra được, nhưng khi lồng vào hàm IIF (expr, nếu expr đúng in (giá trị 1, giá trị 2), nếu sai thì rỗng) thì access ko hiểu.

    Làm sao để khắc phục được ạ
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    ongke0711 > 03-09-18, 07:20 PM

    Bạn đưa code trong câu lệnh của bạn lên mới hiểu được chứ nói chay vậy khó quá.
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    Nguyễn Đăng Toản > 03-09-18, 07:36 PM

    Vâng, tình huống của mình như sau. VD mình làm trong bank, sẽ quản lý theo phòng ban, mã CIF(mã KH)
    VD:
    121: Phòng KHCN
    150: PGD A
    151: PGD B
    trong mỗi phòng sẽ có nhiều KH, mỗi KH tương ứng với 1 CIF, nên khi viết query để truy xuất KH theo từng phòng ban trong criteria mình đã để [MA PHONG] phân biệt các phòng ban,

    khi nhập 121 vào [MA PHONG] sẽ liệt kê ra toàn bộ CIF của phòng ban 121. Tuy nhiên, có 1 số KH tuy mã phòng là 150 nhưng được chuyển giao quản lý cho 121 sẽ bị sót mã CIF VD: 7440812, 7222213. Nên trong or của CIF mình đánh hàm in(7440812, 7222213).

    Khi đánh [MA PHONG] là 121, access nó xổ ra toàn bộ KH theo mã phòng 121 và cả 2 CIF 7440812, 7222213 (mặc dù mã phòng là 150)
    nhưng khi mình gõ lệnh trong phần or: IIF ([MA PHONG] =121, IN (7440812, 7222213), "") thì access lại ko hiểu.
    Mình ko biết làm sao để khắc phục
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    Nguyễn Đăng Toản > 03-09-18, 08:03 PM

  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    ongke0711 > 03-09-18, 08:07 PM

    Câu lệnh IFF của bạn sai.
    Bạn muons nếu mã phòng là 121 thì đưa nguyên câu lệnh "IN (7440812, 7222213)" thế nào dòng Criteria trong query đúng không? -> hàm IFF nó không chạy như vậy được nhé.
    Bạn dùng OR trong cột CIF: In (...) là đúng rồi.
    Mã CIF của bạn là TEXT hay NUMBER? nếu là Text thì trong toán tử IN ("7440812","72222213")
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    Nguyễn Đăng Toản > 03-09-18, 08:21 PM

    (03-09-18, 08:07 PM)ongke0711 Đã viết: Câu lệnh IFF của bạn sai.
    Bạn muons nếu mã phòng là 121 thì đưa nguyên câu lệnh "IN (7440812, 7222213)" thế nào dòng Criteria trong query đúng không? -> hàm IFF nó không chạy như vậy được nhé.
    Bạn dùng OR trong cột CIF: In (...) là đúng rồi.
    Mã CIF của bạn là TEXT hay NUMBER? nếu là Text thì trong toán tử IN ("7440812","72222213")

    Dạ đúng rồi đó ạ, nếu mã phòng là 121 thì làm thể nào để đưa câu lệnh IN (7440812, 7222213) vào trong criteria: Có cách dùng hàm nào để Access hiểu ko ạ, CIF là number ạ. Để riêng 1 mình IN (7440812, 7222213) thì Acccess hiểu ạ
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    ongke0711 > 03-09-18, 08:25 PM

    Trường hợp này lạ.
    Dòng criteria bạn gõ [MA PHONG] thì MA PHONG không được trùng tên Field MAPHONG nhé. Dùng [Nhap MA PHONG:].
    Bạn copy toàn bộ câu lệnh SQL của cái query lên đây xem thử.
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    Nguyễn Đăng Toản > 03-09-18, 08:39 PM

    Dạ, 
    [MA PHONG] phân biệt nhau bằng 121, 150, 151,....

    DEPTCODE chính là mã phòng trong table T-Cdmast_date

    https://uphinhnhanh.com/image/3lTs32

    khi e gõ lệnh IN (7440812, 7222213) trong OR 

    https://uphinhnhanh.com/image/3lTLrG

    thì ACCESS hiểu và liệt kê ra thông tin KH 7440812, 7222213 (mặc dù nằm trong phòng ban khác)

    https://uphinhnhanh.com/image/3lTQsd

    nhưng vấn đề là có thể khi phòng ban 150 có lẫn cả KH của phòng ban 151 (vì CIF theo phòng ban ko đổi được trên hệ thống nhưng thực tế có sự bàn giao qua lại KH giữa các phòng ban) nên e mới xài hàm IIF

    https://uphinhnhanh.com/image/3lTSLr

    thì Access ko hiểu khi chạy lệnh này thì thông tin KH 7440812, 7222213 không xuất hiện (chỉ xuất hiện thông tin KH theo mã 121).

    E có chạy từng CIF một thì Access hiểu, vấn đề là Access ko cho chạy hàm IN khi mệnh đề [MA PHONG] = 121 đúng.

    E ko biết làm thế nào để chèn hàm IN (7440812, 7222213) khi [MA PHONG] = 121 đúng

    Ví Dụ như thế này thì Access nó hiểu và chèn thêm thông tin KH 7440812:
    https://uphinhnhanh.com/image/3lzvwW

    còn dùng hàm in (7440812, 7222213)) thì nó ko hiểu và thêm 1 mớ loằng ngoằng đằng trước sau khi save lại và thoát ra
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    ongke0711 > 03-09-18, 09:03 PM

    - [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
  • RE: Cách lồng hàm in trong hàm IIF khi tạo truy vấn

    Nguyễn Đăng Toản > 03-09-18, 09:14 PM

    https://drive.google.com/file/d/1EySSKcU...pmDwQ/view

    E có mô tả lại trường hợp của e qua file Access này.
    Vâng vấn đề của e là hàm IIF vẫn chạy khi chỉ có 1 giá trị ví dụ:

    IFF([MA PHONG] = 121, 7441271, "")

     nhưng khi kết hợp với hàm IN để hiển thị 2 giá trị IIf([MA PHONG]=121,In (7441271,7441468),"")

    thì nó ko hiểu.