• [Phần 2] Demo Hàm Xếp hạng
  • [Phần 2] Demo Hàm Xếp hạng

    maidinhdan > 27-06-19, 02:18 AM

    Trưước đây tôi có 1 Hướng Dẫn Demo Code Xếp hạng trong Query giống như hàm Rank trong Excel hạn chế của nó là nó bị nhảy bậc.

    Và thể theo yêu cầu của nguyenvanhongthang@gmail.com ta se viết 1 hàm ngắn gọn và dùng được trên mọi địa hình.


    Trích dẫn:từ:Nguyễn Văn Hồng Thắng <nguyenvanhongthang@gmail.com>
    tới:maidinhdan@gmail.com
    ngày:21:05, 26 thg 6, 2019
    Bạn có thể huớng dẫn mình xếp thứ hạng mà không bị nhảy bậc được không
    ạ? Thấy cái bạn làm ở đây nó bị nhảy bậc khi có người bằng nhau mất.
    Mong bạn giúp đỡ ạ!

    * Để thực hiện được ta viết 1 hàm như sau
    Mã PHP:
    '---------------------------------------------------------------------------------------
    Procedure HamXepHang (I)
    ' Author    : HENDAN_WIN10PRO
    Date      27/06/2019
    ' Purpose  : HamXepHang("BangLuong","NGAYCONG",[NGAYCONG])
    '
    ---------------------------------------------------------------------------------------
    '
    Function HamXepHang(TenTable As String, TenCotCanXepHang As String, SoCanXep As Integer) As Integer
    Dim rs As Recordset
    Dim sql As String
    Dim i As Integer
    On Error GoTo Loi

    sql = "SELECT " & TenCotCanXepHang & " FROM " & TenTable & " GROUP BY " & TenCotCanXepHang & " ORDER BY " & TenCotCanXepHang
    Set rs = CurrentDb.OpenRecordset(sql)
        If rs.RecordCount > 0 Then
        rs.MoveFirst
        i = 1
            Do Until rs.EOF
                If rs.Fields(TenCotCanXepHang) = SoCanXep Then
                    HamXepHang = i
                    GoTo ThoatLoi
                End If
                i = i + 1
            rs.MoveNext
            Loop
        Else
        MsgBox "Khong co nguoi nao de xep hang"
    End If
    ThoatLoi:
        rs.Close
        Exit Function
    Loi:
        Resume ThoatLoi

    End Function 


    * Cú pháp gọi để sử dụng
    Mã PHP:
    HamXepHang("Tên table của bạn","Tên cột cần xếp hạng",[Tên đối tượng cần phân loại hạng mấy]) 

    * Lưu ý, 2 tham số đầu 1 kiểu chuỗi phải đặt trong dấy nháy đôi, còn cái thứ 3 phải để trong dấy []

    * Đính kèm Demo.
    Thân mếm
  • RE: [Phần 2] Demo Hàm Xếp hạng

    Thang0977427268 > 28-06-19, 10:46 AM

    Cảm ơn bạn maidinhdan nhiều ạ!
  • RE: [Phần 2] Demo Hàm Xếp hạng

    Thang0977427268 > 28-06-19, 12:27 PM

    Bạn maidinhdan ơi! Cho mình hỏi xíu cái này mình thực hiện từ nguồn Query không phải là Table có được không nhỉ? Do mình làm nó cứ bị treo chứ không chạy được? Nguồn của mình là Query không phải Table
  • RE: [Phần 2] Demo Hàm Xếp hạng

    maidinhdan > 29-06-19, 11:20 PM

    (28-06-19, 12:27 PM)Thang0977427268 Đã viết: Bạn maidinhdan ơi! Cho mình hỏi xíu cái này mình thực hiện từ nguồn Query không phải là Table có được không nhỉ? Do mình làm nó cứ bị treo chứ không chạy được? Nguồn của mình là Query không phải Table

    Lỗi này có thể do form không thích hợp với bản office cua bạn.

    Bạn tạo 1 file Access mới tinh, chỉ import Table, Query, Modules ( ngoại trừ form).... rồi tự làm cái form mới sẽ hết treo thôi.

    Cách khác: Dùng Demo [Hàm] [Phần 3] Demo Xếp hạng (Dùng Mãng Array)
  • RE: [Phần 2] Demo Hàm Xếp hạng

    Nguyễn Thị Thuận > 09-09-24, 05:58 PM

    Dear Anh Maidinhdan,
    Hiện em cũng đang có một danh sách là số kg của vận động viên theo đội, sắp xếp thứ tự trong đội, và nếu trùng kg với các bạn trong đội thì sẽ không trùng xếp hạng. Nhờ anh hỗ trợ giúp em ạ.

    Cách khác: Dùng Demo [Hàm] [Phần 3] Demo Xếp hạng (Dùng Mãng Array)
    [/quote]
  • RE: [Phần 2] Demo Hàm Xếp hạng

    ongke0711 > 09-09-24, 06:36 PM

    (09-09-24, 05:58 PM)Nguyễn Thị Thuận Đã viết: Dear Anh Maidinhdan,
    Hiện em cũng đang có một danh sách là số kg của vận động viên theo đội, sắp xếp thứ tự trong đội, và nếu trùng kg với các bạn trong đội thì sẽ không trùng xếp hạng. Nhờ anh hỗ trợ giúp em ạ.

    Cách khác: Dùng Demo [Hàm] [Phần 3] Demo Xếp hạng (Dùng Mãng Array)
    [/quote]

    Bạn gửi cái file đó lên đây với dữ liệu giả thôi và bảng kết quả mong muốn để mọi người mới có thể xử lý được nhé.
  • RE: [Phần 2] Demo Hàm Xếp hạng

    Nguyễn Thị Thuận > 10-09-24, 12:22 AM

    Dear Anh/Chị,
    Em gửi file ạ, nhờ Anh/Chị xem giúp em,  Hiện em cũng đang có một danh sách là số kg của vận động viên theo đội, sắp xếp thứ tự trong đội, và nếu trùng kg với các bạn trong đội thì sẽ không trùng xếp hạng. Nhờ anh hỗ trợ giúp em ạ.

    Em có file access, Nhưng không biết làm sao gửi lên đây được em chép tạm bên dưới ạ. Nhờ Anh/Chị giúp đỡ. Em cảm ơn ạ.


    TblKG

    MaSale
    TenSale
    TenNhomTruong
    MaNhom
    SoKg



    A719213
    Triệu Bảo Long
    Nguyễn Đại Ka
    A706671
    15.6


    A719930
    Hứa văn Được
    Nguyễn Đại Ka
    A706671
    55.9


    A719668
    Phan Văn Tài
    Phan Minh Nguyệt
    A715693
    67.5


    A719546
    Bảo Bảo
    Phan Minh Nguyệt
    A715693
    87.999


    A719781
    Nguyễn Văn Tý
    Phan Minh Nguyệt
    A715693
    45.7


    A719058
    Ngọc Quế
    Trấn Thành
    A716628
    67.5


    A719053
    Văn Đức
    Trấn Thành
    A716628
    67.5


    A719522
    Trấn Thành
    Trấn Thành
    A716628
    0


    A719968
    Cam Thị Hòa
    Trấn Thành
    A716628
    8.7


    A719959
    Phan Chí Thắng
    Trấn Thành
    A716628
    99


    A719958
    Nguyễn Văn Bo
    Trấn Thành
    A716628
    89.2


    A719151
    Phạm Văn Tèo
    Lê Văn Đẹp
    A717219
    53.6