重複行のレコードに連番を振る

AccessVBA開発
 '同じ製品番号が存在する場合は、行番号のフィールドに連番を振る。(重複なしは"1"とする)
strSQL = "SELECT 製品コード, 行番号 FROM W_製品添加物 ORDER BY 製品コード" '製品コードでソートする
Set rsW = DF_AdoNewRecordset(strSQL, adOpenStatic)

strCode = ""  '重複グループの変わり目を判定する変数
n = 1

If rsW.RecordCount > 0 And rsW.EOF = False Then
    Do Until rsW.EOF

        '製品コードが変わったとき
        If rsW!製品コード <> strCode Then
            n = 1
        End If
        '連番挿入
        rsW!行番号 = n
        '判定用の変数の値を更新
        strCode = rsW!製品コード
        '連番をインクリメント
        n = n + 1
        rsW.Update

        rsW.MoveNext
    Loop
End If
【参照】https://blog.goo.ne.jp/pc_college/e/9af70f574b22701225611def111c68be#_=_


このほか、Dcount関数を使った方法もあるが、上記がすっきりと早い!
【参照】https://hatenachips.blog.fc2.com/blog-entry-428.html
連番: DCount("ID","Tbl1","Group1=" & [Group1] & " AND Group2=" & [Group2] & " AND (Data1='" & [Data1] & "' AND ID<=" & [ID] & " OR [DATA1]<'" & [Data1] & "')")
タイトルとURLをコピーしました