Итак, @Gustav, когда вы ссылаетесь на AfterUpdate, вы имеете в виду использовать его в макросе? По крайней мере, это то, что я получаю, когда гуглю это ...

аза данных создана для лыжных соревнований. Идея состоит в том, что вы можете указать время, когда люди катаются на лыжах, и база данных автоматически рассчитывает, какую медаль вы заработали, исходя из того, кто установил время первым, ваш пол и ваш возраст. Я сделал форму, которая дает возможность зарегистрироваться и дать все результаты.

Единственная проблема, с которой я сейчас сталкиваюсь - это когда кто-то регистрируется, это нужно заказывать по возрасту. Я сделал это, но теперь автонумерация все испортила.

Я хочу, чтобы я мог указать все имена участников, и после этого я хочу получить запрос, который я могу выбрать, который назначит все стартовые номера. Даже когда номера уже назначены, я хочу сбросить их и назначить снова, если кто-то присоединится в последнее время. Я не хочу удалять поле автоматической нумерации и делать его заново, потому что большую часть времени я не буду использовать его сам, но другие люди будут использовать его, поэтому я хочу просто нажать на кнопку, которая его назначает.

Заранее спасибо!

Пример того, как выглядит моя база данных и соревнование

 J. Moonen11 окт. 2017 г., 12:11
Я не настолько знаком, чтобы получить доступ, поэтому я погуглил, но не нашел много. Что я пробовал: Создание запроса с использованием UPDATE и создание запроса, который присваивает номера после того, как все подписались. Но оба не сработали, как я надеялся.
 Strawberry11 окт. 2017 г., 12:03
В нормализованной среде tijd будет храниться в отдельной таблице
 Jacques Koekemoer11 окт. 2017 г., 12:06
покажите нам примеры того, что вы пытались решить эту проблему

Ответы на вопрос(1)

Решение Вопроса

ьше ни меньше.

Что вам нужно, этоприоритет (или жеРанг) поле.

В вашей форме, где вы отображаете записи, запустите такой код для этого поля:

Private Sub Priority_AfterUpdate()

    Dim rst             As DAO.Recordset
    Dim lngId           As Long
    Dim lngPriorityNew  As Long
    Dim lngPriorityFix  As Long

    ' Save record.
    Me.Dirty = False

    ' Prepare form.
    DoCmd.Hourglass True
    Me.Repaint
    Me.Painting = False

    ' Current Id and priority.
    lngId = Me!Id.Value
    lngPriorityFix = Nz(Me!Priority.Value, 0)
    If lngPriorityFix <= 0 Then
        lngPriorityFix = 1
        Me!Priority.Value = lngPriorityFix
        Me.Dirty = False
    End If

    ' Rebuild priority list.
    Set rst = Me.RecordsetClone
    rst.MoveFirst
    While rst.EOF = False
        If rst!Id.Value <> lngId Then
            lngPriorityNew = lngPriorityNew + 1
            If lngPriorityNew = lngPriorityFix Then
                ' Move this record to next lower priority.
                lngPriorityNew = lngPriorityNew + 1
            End If
            If Nz(rst!Priority.Value, 0) = lngPriorityNew Then
                ' Priority hasn't changed for this record.
            Else
                ' Assign new priority.
                rst.Edit
                    rst!Priority.Value = lngPriorityNew
                rst.Update
            End If
        End If
        rst.MoveNext
    Wend

    ' Reorder form and relocate record.
    Me.Requery
    Set rst = Me.RecordsetClone
    rst.FindFirst "Id = " & lngId & ""
    Me.Bookmark = rst.Bookmark

    ' Present form.
    Me.Painting = True
    DoCmd.Hourglass False

    Set rst = Nothing

End Sub

Просто присвойте звание любой записи, и записи будут перенумерованы по мере необходимости.

 Darren Bartrup-Cook11 окт. 2017 г., 14:54
я нашел принятый ответ по этой ссылке оценивается довольно адекватно. Не уверен, что это будет делать с тай-брейками, хотя.stackoverflow.com/questions/4463116/...
 Gustav11 окт. 2017 г., 15:11
@ DarrenBartrup-Cook: хитрость заключается в том, чтобы добавить совпадение ID-Rank в коллекцию один раз, а затем прочитать рейтинг очень быстро, независимо от того, как вы просматриваете форму.
 J. Moonen11 окт. 2017 г., 14:48
Спасибо за ваш ответ! Как я уже говорил выше, я не очень знаком для доступа ... Можете ли вы быть более конкретным, где и как я могу реализовать этот код?
 J. Moonen11 окт. 2017 г., 20:53
Итак, @Gustav, когда вы ссылаетесь на AfterUpdate, вы имеете в виду использовать его в макросе? По крайней мере, это то, что я получаю, когда гуглю это ...
 Gustav11 окт. 2017 г., 15:06
этофоновый код формы, которую вы используете. Добавить поле с именемприоритет типа данных Integer в таблицу, включите его в форму и вставьте код в качествеAfterUpdate Событие текстового поля привязано к полю.

Ваш ответ на вопрос