Hello All,
I tried this code and it works ok:
(declarations)
Option Explicit
Dim mlngCounter As Long
Function ResetCounter()
mlngCounter = 0
End Function
Function GetNextCounter(pvar As Variant) As Long
mlngCounter = mlngCounter + 1
GetNextCounter = mlngCounter
End Function
In the Query:
Select [feilds...], ResetCounter(), GetNextCounter([a valid column]) From table....
How this works:
ResetCounter() takes no parameters so Access (being as efficient as ever

only calls the function once before returning any rows as it thinks the return value will never change, hence the counter only gets reset once.
GetNextCounter() must be sent a valid column as a parameter, Access will realise that it must call this function for every row as each value sent can be different, so it increases the counter on each row.
Please note: This won't work very well for queries & forms where you intend to update data or scroll up and down as the calculated fields gets calculated again and the sequence number will keep going up and up.
Unfortunately though, it does not start with 1. Any suggestions?