Иногда перед программистом встает задача: пронумеровать записи из некоторой таблицы, используя запрос.
Конечно, можно добавить в таблицу поле и пройтись по нему recordset'ом. Но что делать в случае, если Вы имеете дело со ссылкой на таблицу, находящейся в другом файле, или со ссылкой на текстовый файл? Часто именно в этом случае и нужен счетчик, для того, чтобы импортировать в Вашу базу только часть данных из внешней таблицы или файла.
Вот одно из решений этой задачи:
В каком-нибудь модуле пишем:
Private curNum As Long
Public Function startNum() As Boolean
curNum = 0
startNum = True
End Function
Public Function GetNextNum(anyField) As Long
curNum = curNum + 1
GetNextNum = curNum
End Function
В запросе пишем:
SELECT DISTINCT *, GetNextNum([AnyField]) AS MyCounter
FROM MyTable
WHERE startNum()=True;
Пробовал, работает.
Этот и другие варианты решения задачи описаны здесь.