Таблица (trade) с тремя обязатетльными id (счетчик), data (дата документа), nPSA (номер док-та по заданной дате)
Нужно:
Сделать функцию, которая заново перенумеровала все документы по каждой дате от 1 и до конца, т.к. оператор часто забывает ввести правильно номер документа или его дату
Решение:
Создаем кнопку cmdDoIt и в событие онКлик пишем следующий код...
Код: Выделить всё
Private Sub cmdDoIt_Click()
On Error GoTo Err_cmdDoIt_Click
Dim cnnLocal As New ADODB.Connection
Dim rstCur As New ADODB.Recordset
Dim pDATA As Date
Set cnnLocal = CurrentProject.Connection
rstCur.Open "SELECT trade.data, trade.id, trade.nPSA FROM trade ORDER BY trade.data, trade.id", cnnLocal, 2, 2
pDATA = rstCur!data.Value
i = 0
Do Until rstCur.EOF
If rstCur!data.Value = pDATA Then
i = i + 1
Else
pDATA = rstCur!data.Value
i = 1
End If
'Debug.Print rstCur!data.Value; "#"; rstCur!nPSA.Value; "i="; i
rstCur!nPSA.Value = i
rstCur.MoveNext
DoEvents 'это не дает зависать приложению при обработке большого кол-ва записей
Loop
rstCur.Close
Exit_cmdDoIt_Click:
Exit Sub
Err_cmdDoIt_Click:
MsgBox Err.Description
Resume Exit_cmdDoIt_Click
End Sub
усе... =)