Это может быть действительно легко, если у вас есть поле или комбинация полей, которые позволяют вам определять порядок дублирования значений Invoice_Number.Без такого метода порядок, в котором эти значения Invoice_Number извлекаются, является произвольным.
У вас есть поле автономного номера с именем "Record_ID" в качестве первичного ключа POS_File_Detail.
SELECT
Invoice_Number,
DCount("*", "POS_File_Detail",
"Invoice_Number = '" & [Invoice_Number] &
"' AND Record_ID <= " & [Record_ID]) AS Line_Number
FROM POS_File_Detail;
Хотя вы просили сохранить Line_Number в POS_File_Detail, я вместо этого дал вам инструкцию SELECT.Я сделал это, потому что почти всегда является ошибкой сохранять производные значения в таблице.Лучше получать Line_Number с запросом, когда вам это нужно.Таким образом вы избегаете хранения избыточных данных и гарантируете, что Line_Number всегда актуален, несмотря на вставки, обновления и удаления в POS_File_Detail.
Однако , если , у вас есть веская причина для фактического хранения Line_Number в POS_File_Detail, вы можете преобразовать SELECT в инструкцию UPDATE.
UPDATE POS_File_Detail
SET Line_Number = DCount("*", "POS_File_Detail",
"Invoice_Number = '" & [Invoice_Number] &
"' AND Record_ID <= " & [Record_ID]);
Пожалуйста, убедитесь, что у вас действительно есть веская причина для хранения этих значений.