У меня есть база данных, которая функционирует аналогично системе «службы поддержки» - внешний пользователь создает тикет запроса, затем консультант будет использовать базу данных для различного отслеживания и отчетности.
Есть форма, которую консультант использует для отображения и работы с запросом конечного пользователя. Они выбирают существующую запись (тикет запроса) из поля со списком. Затем форма заполняется информацией о запросе, которую консультант может отредактировать при необходимости.
Затем у меня есть ряд кнопок в этой форме, которые консультант может использовать для открытия различных форм (рабочих листов) и ввода данных в каждую из них. Все это необязательно и зависит от типа запроса.
Все эти рабочие листы заполняют таблицу «Консультации», в то время как начальные запросы находятся в таблице «Запрос». В таблице «Консультации» есть только одна запись для каждой записи в «Запросе» (отношение 1: 1).
Вот код, который мне нужно открыть для форм (листов):
Private Sub ButtonGap_Click()
DoCmd.OpenForm "Gap Analysis", acNormal, , "[ID] = " & Me!ID, acFormEdit, acDialog
End Sub
Это работает только частично. Если в таблице «Консультации» есть информация с идентификатором, который соответствует идентификатору из «Запроса» (то, что они выбрали в поле со списком в начале), рабочий лист откроется предварительно заполненным и доступным для редактирования. Большой!
Но ... если в таблице «Консультации» нет существующей информации с идентификатором, который соответствует идентификатору из «Запроса», рабочий лист откроется пустым для новой записи. Эта запись автономна с того места, где закончилась таблица "Консультации". Это создает проблему, если поступило несколько запросов - мы не всегда работаем над ними по порядку, поэтому новый идентификатор записи в «Консультации» не совпадает с существующей записью из «Запроса».
Я уверен, что упускаю из виду нечто невероятно простое. Кто-нибудь может помочь?