Microsoft Access 掲示板

IDが連番に並んでいるのか知りたい / 10

24 コメント
views
4 フォロー
10

テーブルに表示させたいなら、テーブルに表示用のフィールドを追加することになります。

例えば、 連番チェック という名前のテキスト型のフィールドを追加したとして、下記のような感じです。

Public Sub SequenceCheck2()
    Dim MinId As Long, MaxID As Long
    MinId = DMin("ID", "T1"): MaxID = DMax("ID", "T1")
    
    Dim StepNum As Long, SeqNum As Long, stOrder As String
    If DLookup("数値", "T1", "ID=" & MinId) < DLookup("数値", "T1", "ID=" & MaxID) Then
        StepNum = 1   '昇順
        SeqNum = MinId
        stOrder = "昇順"
    Else
        StepNum = -1  '降順
        SeqNum = MaxID
        stOrder = "降順"
    End If

    CurrentDb.Execute "UPDATE T1 SET 連番チェック = Null WHERE Not 連番チェック Is Null;"
    
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM T1 ORDER BY 数値;")
    Do Until rs.EOF
        If rs!ID <> SeqNum Then
            rs.Edit
            rs!連番チェック = stOrder & "×"
            rs.Update
        End If
        SeqNum = SeqNum + StepNum
        rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
End Sub
通報 ...