下記のような仕様だと仮定して。
- 数値を昇順にした場合、ID全体が昇順または降順で連番になっているかどうかをチェック。
- 途中から昇順、降順が変わることはない。
- 必ずIDは連番になっていて抜けがない。
- 連番になっていないIDはイミディエイトウィンドウに出力。
- テーブル名は T1
Public Sub SequenceCheck()
Dim MinId As Long, MaxID As Long
MinId = DMin("ID", "T1"): MaxID = DMax("ID", "T1")
Dim StepNum As Long, SeqNum As Long
If DLookup("数値", "T1", "ID=" & MinId) < DLookup("数値", "T1", "ID=" & MaxID) Then
StepNum = 1 '昇順
SeqNum = MinId
Else
StepNum = -1 '降順
SeqNum = MaxID
End If
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM T1 ORDER BY 数値;")
Do Until rs.EOF
If rs!ID <> SeqNum Then
Debug.Print rs!ID
End If
SeqNum = SeqNum + StepNum
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
End Sub
通報 ...