У меня есть таблица событий, которая записывает несколько событий для каждого человека. Я добавил поле event_number, чтобы пользователь мог идентифицировать порядок событий для каждого человека и перемещаться между ними. Добавлена кнопка «Новое событие» со следующим кодом, который находит последний номер события для человека и вставляет новую строку в таблицу с некоторыми базовыми данными, такими как их идентификатор и следующий номер доступного события. Это работает нормально, но мне нужно сделать это, чтобы переместить суб-форму события так, чтобы этот новый номер события отображался в форме, чтобы можно было добавить остальные данные. Пробовал различные варианты вокруг DoCmd.GoToRecord, но может отображать только пустую подформу, а не показывать только что введенный номер события. Есть идеи?Access 2007 VBA GoToRecord issue
Private Sub btnNewEvent_Click()
'add a new event by setting discriminator and event number
Dim lngLast As Long
Dim strQuery As String
lngLast = DMax("[event_number]", "event", "[PersonID] = [Forms]![frmContainer]![txPersonID]")
lngLast = lngLast + 1
strQuery = "INSERT INTO event (ID, event_discriminator, event_number) " & _
"VALUES ([Forms]![frmContainer]![txtPersonID], 'NR', " & lngLast & ")"
DoCmd.RunSQL (strQuery)
End Sub
Есть ли лучший способ установить следующий номер события? В таблице в настоящее время имеется Autonumber в качестве первичного ключа event_ID. Необходимо иметь возможность записывать около 50 событий для каждого человека, всего 2400 человек. Только один пользователь будет отвечать за запись конкретного человека. – Chelle
Одиночная форма, основанная на таблице событий в виде набора записей, но содержащая несколько подформ, каждая для отдельной таблицы с event_ID как внешний ключ и связывание с главной/дочерней ссылкой. – Chelle
Номер события - следующий порядковый номер на человека, верно? Требуется ли последовательное число? – Fionnuala