Sequential Counter Query Example
The
sequential counter query example demonstrates a simple method to add a sequential number to every record in the query
result. This example goes one step further and resets the increment when the Category field changes.
See the query called Q_Increment. This query adds records to the T_Query_Results table.
The record from T_Query_Results are displayed in the form below. Every time this form is opened the records are regenerated.
Also see the VBA module call to module named VB_Functions. There you'll find the established of global variables and the
vb function the performs the increment. The function is called from within the Q_Increment query.
The example uses an append query into a table so that the increment values don't
change when Access refreshes the data every so many seconds. The feature
of Access can probably be turned off but I haven't found where to do it.
So, you need to place the results in a table or directly into a report to
prevent the incremental value changing.

Here is the globals module code containing the global variable declaration, the
initialization of the increment variable, and the function which continuously
increments until the Category field changes.
Option Compare Database
Global GBL_Category As String
Global GBL_Icount As Long
Public Function increment(ivalue As String) As Long
If Nz(GBL_Category, "zzzzzzzz") = ivalue Then
GBL_Icount = GBL_Icount + 1
Else
GBL_Category = ivalue
GBL_Icount = 1
End If
increment = GBL_Icount
End Function
Here is the link to download the
Access
Sequential Number Query Example