Все вопросы связанные с программированием. Языки программирования. Средства разработки.
Ответить
Аватара пользователя
dBaser
Не в сети
СуперМодератор
СуперМодератор
Сообщения: 1202
Зарегистрирован: Вт дек 09, 2003 11:50
Контактная информация:

VBA Access ::: Перенумерование документов по каждой дате

Сообщение dBaser »

Дано:
Таблица (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


усе... =)
Критиковать - это показывать автору, как бы делал я, если бы умел.
-------
Продаются мужские часики. Один часик - 50 долларов.

Ответить