MS Access: как мне заполнить другие поля в других подчиненных формах, используя форму?

У меня есть следующие таблицы с полями, которые являются общими для них. Например

Таблица филиалов

  • Идентификатор продавца (ПК)
  • Название ритейлера
  • адрес 1
  • Адрес 2

Внутренняя таблица

  • Идентификатор продавца (ПК)
  • Название ритейлера
  • Внутренний идентификатор

Банковские счета

  • Идентификатор продавца (ПК)
  • Название ритейлера
  • Код банка
  • Номер банковского счета

Я создал "основную" форму с использованием таблицы филиалов и включил формы внутренней таблицы и банковских счетов в качестве подчиненных. Мое намерение состоит в том, чтобы иметь тип пользователя в полях Retailer ID и Retailer Name, чтобы предотвратить повторные ручные вводы тех же полей. Под листами свойств я связал поля, используя основные поля ссылок и дочерние поля ссылок. Тем не менее, кажется, что форма не работает, как предполагалось.

После ввода тестовых данных для таблицы переходов (основной) переход к полям для внутренней таблицы приводит к следующей ошибке:

"Ядро базы данных Microsoft Access не может найти запись в таблице с полями (ключами) для сопоставления ключей. (Ошибка 3101) " Объяснено как таковое "В отношении" один ко многим "вы ввели данные на стороне" многие ", для которой" нет соответствующей записи на стороне "один". Например, эта ошибка возникает, если вы соединяете таблицу Customers и таблицу Orders в поле CustomerID, а затем добавляете заказ, используя CustomerID, которого нет в таблице Customers ".

Из-за этого я не могу автоматически добавить еще одну запись для других таблиц.

1 ответ

Поле Retailer ID дочерних таблиц не может быть PK.

Создайте другое поле (Autonumber) в этих таблицах, чтобы быть PK.

Затем перейдите к конструктору графического интерфейса для инструментов базы данных, отношений и настройте ссылочную целостность между таблицей Branch и двумя дочерними таблицами, используя поля Retailer ID. Теперь они будут в дочерних таблицах удерживать FK в главной таблице.

Другие вопросы по тегам