プロシージャによる順位付け(ADO) Hit Counter

対象バージョン : 2000(ADP), 2002(ADP), 2003(ADP), 2007(ADP)
最終更新日 : 2007/03/11 (オリジナル作成日:2001/06/19)


概 要

 プロシージャを用いて順位付けを行う方法です。

 ビューによる順位付けでは、レコード数が多く実行速度に問題がある場合に使用して下さい。


手 順

 順位付けを行いたいテーブル "成績" にフィールド "クラス", "出席番号", "得点" があるものとし、クラスごとに得点の高い順に順位を振るものとします。

 同じ得点の者は同順位とします。


Public Function 順位付け()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strSQL As String
Dim intPoint As Integer
Dim strClass As String
Dim intCnt As Integer
Dim intOrder As Integer

Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset
strSQL = "SELECT クラス, 得点, 順位 FROM 成績 ORDER BY クラス, 得点 DESC"
rs.Open strSQL, cnn, adOpenDynamic, adLockPessimistic, adCmdText
Do While rs.EOF = False
    If rs!クラス <> strClass Then
        intPoint = 999
        intCnt = 0
        strClass = rs!クラス
    End If
    intCnt = intCnt + 1
    If rs!得点 <> intPoint Then
        intOrder = intCnt
        intPoint = rs!得点
    End If
    rs!順位 = intOrder
    rs.Update
    rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing

End Function


改訂履歴


目次へ戻る