Извините за длинное объяснение; Я надеюсь, что подробности помогут объяснить, что я хочу сделать.
В Access 2016 я хочу, чтобы пользователь мог go в форме и выбрать комбинацию двух значений из одной таблицы (читайте только), затем введите дополнительные данные в различные поля, которые соответствуют этой комбинации. Когда запись сохранена, дополнительные сведения сохраняются в другой таблице вместе с идентификатором строки, который соответствует выбранной комбинации.
Например, скажем, у меня есть база данных для отслеживания ответов компании относительно того, как они отвечают требованиям различных государственных нормативных актов. У меня есть таблица для правил с полями для:
- Идентификатор строки
- Набор правил, со значениями stati c, хранящимися в списке значений (то есть "HIPAA", "PCI DSS" ", et c.)
- Номер правила
- Текст правила
В этой таблице номера правил могут совпадать Наборы правил, но комбинация уникальна, поэтому я добавил уникальный индекс для этих двух столбцов.
У меня есть другая таблица, в которой содержится информация об ответах. Таблица ответов имеет столбец FK, связанный с идентификатором строки в таблице правил. Между Ответами: Правилами существует отношение 1: M.
Я хочу, чтобы пользователь мог выбрать Набор правил из раскрывающегося списка, а затем иметь второй раскрывающийся список, в котором будут отображаться только соответствующие Правила. номера на основе набора правил. Затем они могут ввести соответствующие данные ответа в другие поля.
Я создал форму, используя мастер форм с полями со списком для набора правил и имени регулирования, а также поля для данных ответов. Связывание комбо-боксов прекрасно работает. Я могу выбрать набор правил, и тогда он ограничивает список номеров правил только теми, которые применяются к этому набору правил. Тем не менее, он пытается обновить таблицу правил, когда я хочу, чтобы она была доступна только для чтения.
Допустим, у меня есть эти записи в таблице правил для набора правил - Номер регулирования HIPAA - 1.0 HIPAA - 1.1 HIPAA - 1.3 PCI DSS - 5a PCI DSS - 5b
I go в форме и выберите HIPAA в первом поле со списком. Второе поле со списком корректно показывает значения 1,0, 1,1, 1,3. Я выбираю 1.3 и ничего не делаю, кроме как пытаюсь закрыть форму. Я получаю сообщение об ошибке, в котором говорится, что запись не может быть сохранена, поскольку в результате в таблице правил будет дублированное значение Если я удаляю уникальное ограничение и повторяю шаги, я могу закрыть форму, но затем, когда я go перехожу к таблице правил, она перезаписывает данные, и теперь у меня есть две строки HIPPA с именем правила 1.3.
Я хочу, чтобы форма использовала только таблицу правил для поиска без каких-либо обновлений. Как только пользователь получит комбинацию набора / номера регулирования и сохранит ответ, я хочу сохранить идентификатор строки регулирования в таблице ответов.
Я думаю, что это связано с отношением 1: M между наборами регулирования и регулированием. Числа, так что, когда я выбираю Reg Set, он выбирает запись из таблицы; затем я выбираю номер Reg, который может быть из другой строки. Я согласен с этим несоответствием в форме, потому что, когда я сохраняю запись ответа, я могу запросить таблицу правил для идентификатора строки, который соответствует выбранным значениям. Но я не могу понять, как удержать его от попыток обновить таблицу правил.
Любая помощь будет принята с благодарностью!