Прежде всего: я использую Access 2016
У меня есть следующие основные настройки:
- Клиенты (с именем, деловой информацией и т. Д.)
- Контакты (контактная информация, каждый контакт принадлежит ОДНОМУ клиенту)
- CustomerSite (адрес и т. Д., Каждый сайт принадлежит ОДНОМУ клиенту)
- Услуги (информация об объекте, каждый объект принадлежит ОДНОМУ CustomerSite)
Эти отношения реализуются с использованием внешнего ключа для идентификатора клиента / сайта. Это работает довольно хорошо.
Однако, кроме того, я хочу следующее:
МНОГИЕ из Контактов могут нести ответственность за МНОГИЕ Сайты и / или МНОГИЕ Услуги.
Поэтому я сделал следующие соединительные таблицы:
- ContactsCustomerSite (внешние ключи для Contact-ID и Site-ID)
- ContactsFacility (внешние ключи для Contact-ID и Facility-ID)
Это работает до тех пор, пока я тщательно ввожу данные вручную в соединительные таблицы.
Однако я хочу предложить формы для назначения контактов сайтам / объектам, и именно здесь у меня возникла проблема.
Пока что я попробовал автоматически сгенерированные формы с небольшой настройкой. Они показывают, например, информация об объекте, а затем связанные контакты в форме данных-подчиненной форме (со ссылками на контактную форму).
Таблицы не ограничены должным образом. Я могу ввести новые контакты там, но с несколькими проблемами:
- контакты, которые я ввожу туда, становятся НОВЫМИ контактами
- Я должен вручную выбрать клиента, которому принадлежит контакт, это источник ошибок (например, контакты разных клиентов могут быть указаны как ответственные)
Я хотел бы выбрать только из существующих контактов, принадлежащих одному и тому же клиенту.
Как я могу это сделать?
Я не совсем понимаю, какая форма была бы правильной, чтобы ввести это, я также не очень понимаю, что делает доступ "под поверхностью": (