プロシージャによる順位付け(ADO) |
対象バージョン : 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
改訂履歴