質問: クエリで連番を振るやり方でよい方法があれば宜しくお願い致します。 ◆やりたい事 クエリで連番を振って、その連番に応じてデータを抽出がしたい。 ◆やっていること Dcount関数を使用して連番を振っていた 連番: DCount("発注数","T_連番","発注数<=" & [発注数]) ◆発生した問題 発注数が同数のものがあり、Dcout関数では同じ値が返ってくるようになった ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/460aaf3da12c64613c9ace54e34284cf.jpeg) 何かよい関数があればご教示いただけないでしょうか? ネットで検索してみると、グルーピングしての連番を振るなどのヒントはあるのですが 同じ値があった場合の記述がなく、行き詰っております。 ご教示宜しくお願い致します。
回答: 他にも連番を振るような場面が複数ある場合は標準モジュールで、 最大値を取得するようなソースを書いておいて、必要な時呼び出したら いいかもしれません。 標準モジュール ``` '====================================================================== ' '最大値取得 ' '====================================================================== Public Function GetMaxNo(ByVal tblName As String, ByVal col_no As String, _ Optional strWhere As String) As Long On Error GoTo Err_Proc Dim strSQL As String Dim rs As Recordset Dim maxno As Long 'SQL文字列生成 strSQL = "SELECT MAX(" & col_no & ") AS MaxNo FROM " & tblName & " " '抽出条件生成 If IsNull(strWhere) = False Then strSQL = strSQL & strWhere End If 'データ取得 Set rs = CurrentDb.OpenRecordset(strSQL) '最大値取得 If Not rs Is Nothing Then If (IsNull(rs![maxno]) = False) Then maxno = rs![maxno] Else maxno = 0 End If Else maxno = 0 End If 'オブジェクト破棄 If Not rs Is Nothing Then Set rs = Nothing End If '戻りセット GetMaxNo = maxno + 1 Exit_Proc: Exit Function Err_Proc: Resume Exit_Proc End Function ```