• Tạo công thức cho cột trong table
  • Tạo công thức cho cột trong table

    hoat > 11-04-23, 05:06 PM

    Mình có một vấn đề mong được sự hướng dẫn từ anh chị  em:
    Mình có 1 table gồm các cột: STT, MaDuAn, TenDuAn, SoPO, GiaTriPO, ThoiHanThanhToan, UyNhiemChi, TinhTrangThanhToan.
    MÌnh muốn nội dun trong cột  TinhTrangThanhToan tự nhảy theo diều kiện:
    - Nếu cột  UyNhiemChi trống và ngày trong cột  ThoiHanThanhToan lớn hơn ngày hiện tại thì cột  TinhTrangThanhToan sẽ hiển thị nội dung: Chưa thanh toán
    - Nếu cột  UyNhiemChi trống và ngày trong cột  ThoiHanThanhToan nhỏ hơn ngày hiện tại thì cột  TinhTrangThanhToan sẽ hiển thị nội dung: Chậm thanh toán
    - Nếu cột  UyNhiemChi khác rỗng thì cột  TinhTrangThanhToan sẽ hiển thị nội dung: Đã thanh toán.
    - Các trường hợp khác thì để trống.

    Muốn làm được như vầy mình làm bên table luôn được không hay phải làm bằng query.
    Anh chị em có thể hướng dẫn mình viết hàm cho trường hợp này được không ?

    Rất mong nhận đươc sự hỗ trợ từ anh chị em.
  • RE: Tạo công thức cho cột trong table

    cpucloi > 11-04-23, 05:17 PM

    1. Table có mục đích chính là lưu trữ dữ liệu
    2. Query dùng để trích lọc, cập nhật, xóa, tính toán, ...
    ===>>> Bạn nên sử dụng Query để thực hiện yêu cầu này (chỉ cần sử dụng hàm IIF cũng được)
  • RE: Tạo công thức cho cột trong table

    hoat > 11-04-23, 05:41 PM

    (11-04-23, 05:17 PM)cpucloi Đã viết: 1. Table có mục đích chính là lưu trữ dữ liệu
    2. Query dùng để trích lọc, cập nhật, xóa, tính toán, ...
    ===>>> Bạn nên sử dụng Query để thực hiện yêu cầu này (chỉ cần sử dụng hàm IIF cũng được)

    Mình viết hàm như vầy:
    TinhtrangthanhtoanTU: iif([Uynhiemchitamung]=0 and [Thoihantamung]< date(), ”Chưa thanh toán”, iif([Uynhiemchitamung]=0 and [Thoihantamung]> date(),”Chậm thanh toán”, iif([Uynhiemchitamung]<>””,”Đã thanh toán”,””)))

    mà không được, không biết nó bị sai chỗ nào, bạn xem giúp mình được không
  • RE: Tạo công thức cho cột trong table

    ongke0711 > 11-04-23, 07:07 PM

    (11-04-23, 05:41 PM)hoat Đã viết: TinhtrangthanhtoanTU: iif([Uynhiemchitamung]=0 and [Thoihantamung]< date(), ”Chưa thanh toán”, iif([Uynhiemchitamung]=0 and [Thoihantamung]> date(),”Chậm thanh toán”, iif([Uynhiemchitamung]<>””,”Đã thanh toán”,””)))

    mà không được, không biết nó bị sai chỗ nào, bạn xem giúp mình được không

    Cột [UyNhiemChiTamUng] của bạn là dạng Number hay Text? Tôi thấy bạn vừa so sánh cột đó với số 0 và vừa với cặp nháy kép "" ???
    Thay đổi logic xử lý lại chút: đưa điều kiện [UyNhiemChiTamUng] khác rỗng lên đầu tiên.
  • RE: Tạo công thức cho cột trong table

    hoat > 11-04-23, 10:24 PM

    (11-04-23, 07:07 PM)ongke0711 Đã viết:
    (11-04-23, 05:41 PM)hoat Đã viết: TinhtrangthanhtoanTU: iif([Uynhiemchitamung]=0 and [Thoihantamung]< date(), ”Chưa thanh toán”, iif([Uynhiemchitamung]=0 and [Thoihantamung]> date(),”Chậm thanh toán”, iif([Uynhiemchitamung]<>””,”Đã thanh toán”,””)))

    mà không được, không biết nó bị sai chỗ nào, bạn xem giúp mình được không

    Cột [UyNhiemChiTamUng] của bạn là dạng Number hay Text? Tôi thấy bạn vừa so sánh cột đó với số 0 và vừa với cặp nháy kép "" ???
    Thay đổi logic xử lý lại chút: đưa điều kiện [UyNhiemChiTamUng] khác rỗng lên đầu tiên.

    Cột [UyNhiemChiTamUng] của mình là dạng Text
  • RE: Tạo công thức cho cột trong table

    hoat > 11-04-23, 11:00 PM

    (11-04-23, 10:24 PM)hoat Đã viết:
    (11-04-23, 07:07 PM)ongke0711 Đã viết:
    (11-04-23, 05:41 PM)hoat Đã viết: TinhtrangthanhtoanTU: iif([Uynhiemchitamung]=0 and [Thoihantamung]< date(), ”Chưa thanh toán”, iif([Uynhiemchitamung]=0 and [Thoihantamung]> date(),”Chậm thanh toán”, iif([Uynhiemchitamung]<>””,”Đã thanh toán”,””)))

    mà không được, không biết nó bị sai chỗ nào, bạn xem giúp mình được không

    Cột [UyNhiemChiTamUng] của bạn là dạng Number hay Text? Tôi thấy bạn vừa so sánh cột đó với số 0 và vừa với cặp nháy kép "" ???
    Thay đổi logic xử lý lại chút: đưa điều kiện [UyNhiemChiTamUng] khác rỗng lên đầu tiên.

    Cột [UyNhiemChiTamUng] của mình là dạng Text

    Mình sửa lại như vầy:
    TinhtrangthanhtoanTU: iif([Uynhiemchitamung]<>””,”Đã thanh toán”, iif([Uynhiemchitamung]="" and [Thoihantamung]< date(), ”Chưa thanh toán”, iif([Uynhiemchitamung]="" and [Thoihantamung]> date(),”Chậm thanh toán”,””)))

    báo lỗi: The expression you entered contains invalid syntax
                 you may have entered an operand without operator
  • RE: Tạo công thức cho cột trong table

    cpucloi > 12-04-23, 10:00 AM

    Trích dẫn: The expression you entered contains invalid syntax
                 you may have entered an operand without operator

    Bác Google dịch
    Trích dẫn: Biểu thức bạn đã nhập chứa cú pháp không hợp lệ
    Bạn có thể đã nhập một toán hạng mà không có toán tử

    Bạn nên đưa demo lên để mọi người giúp dễ dàng hơn
  • RE: Tạo công thức cho cột trong table

    ongke0711 > 12-04-23, 03:02 PM

    (11-04-23, 11:00 PM)hoat Đã viết: báo lỗi: The expression you entered contains invalid syntax
                 you may have entered an operand without operator

    Bạn thay đổi thử 
    - Dấu phân cách các mệnh đề thành chấm phẩy ";" xem thử.
    - hoặc Bỏ cặp ngoặc kép của hàm Date()

    Một vấn đề khác là nếu cột [UyNhiemChiTamUng] đang là Null thì nó không so được với "".
    Tốt nhât là thêm hàm Nz() để khử Null
    Vd: IIF(Nz([UyNhiemChiTamUng],"") = "", ...., ...)
  • RE: Tạo công thức cho cột trong table

    hoat > 13-04-23, 03:45 PM

    (12-04-23, 03:02 PM)ongke0711 Đã viết:
    (11-04-23, 11:00 PM)hoat Đã viết: báo lỗi: The expression you entered contains invalid syntax
                 you may have entered an operand without operator

    Bạn thay đổi thử 
    - Dấu phân cách các mệnh đề thành chấm phẩy ";" xem thử.
    - hoặc Bỏ cặp ngoặc kép của hàm Date()

    Một vấn đề khác là nếu cột [UyNhiemChiTamUng] đang là Null thì nó không so được với "".
    Tốt nhât là thêm hàm Nz() để khử Null
    Vd: IIF(Nz([UyNhiemChiTamUng],"") = "", ...., ...)

    Cảm ơn ongke0711
    mình đã làm được