Если ваша таблица содержит числовой первичный ключ, вы можете использовать DCount () в своем запросе для генерации порядкового номера. В этом примере id - это номер и первичный ключ.
SELECT DCount("*","MyTable","id<=" & [m].[id]) AS sequence_num, m.id, m.some_text
FROM MyTable AS m
ORDER BY DCount("*","MyTable","id<=" & [m].[id]);
Вы можете изменить ORDER BY, чтобы ссылаться на порядковый номер выражения поля в списке полей, а не на полное выражение поля, если вы предпочитаете.
ORDER BY 1;
В любом случае запрос должен создать редактируемый источник записей для вашей формы, хотя, очевидно, вы не сможете редактировать sequence_num напрямую ... поэтому установите свойства элемента управления, которые вы связываете с ним, как Enable = No и / или заблокировано = Да.
Вы можете использовать подзапрос вместо выражения DCount для sequence_num, но тогда вы получите набор записей только для чтения.
Этот подход не требует числового первичного ключа, но вам нужно уникальное поле или комбинация полей, которые являются уникальными. Вы также можете сделать это с полями текста или даты.
Редактировать : Если вы удаляете строки в форме, выполните Me.Requery в событии подтверждения после обновления формы. Если вы добавляете строку, которую вы хотите отобразить до конца набора записей, тогда тоже выполните Me.Requery. То же самое, если вы редактируете значения в уникальных полях для существующих строк.