Как создать отношение «один ко многим» между запросом и таблицей в Access 2016? - PullRequest
0 голосов
/ 12 сентября 2018

enter image description here

Над таблицей "Люди"

enter image description here

Над SQLпредставление запроса «Страна подсчета» на основе таблицы «Люди»

enter image description here

Выше приведено представление таблицы запроса «Страна подсчета» на основе таблицы«Люди»

enter image description here

Выше приведена еще одна таблица под названием «Список городов»

enter image description here

Почему я не могу создать отношение «один ко многим» между запросом «Страна подсчета» и таблицей «Список городов»?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вы можете создавать отношения только с ссылочной целостностью между таблицами.Кроме того, оба поля должны иметь одинаковый тип данных, и поля слева (поля, которые вы перетаскивали на другую сторону) должны быть первичным ключом этой таблицы (или, по крайней мере, иметь уникальный индекс, которыйне допускает нулевые значения).

Единственная причина создания отношения без ссылочной целостности - сообщить Access, как связаны данные, поэтому Access автоматически объединит обе таблицы (или, как в вашем случае, таблицу и запрос), когда вы добавите обеих на запрос.Кроме того, Access может автоматически создавать «подчиненную таблицу» при работе с таблицами данных.

Чтобы «автоматически» создать форму, которая переходит к городам, используйте мастер форм и добавьте поля как из запроса, так и из таблицы.

0 голосов
/ 12 сентября 2018

То, что вы описываете, звучит как каскадные (зависимые) комбинированные списки. Так что если у вас нет таблицы стран, RowSource для cbxCountry может быть SELECT DISTINCT Country FROM CityList;. Затем RowSource для cbxCities отфильтровывается по cbxCountry SELECT City FROM CityList WHERE Country=[cbxCountry];. Вам потребуется код для запроса cbxCity при переходе к другой записи и / или при изменении выбора в cbxCountry.

Если вам нужна форма, показывающая отдельную страну, то RecordSource может быть тем же запросом DISTINCT. Затем введите код, чтобы открыть форму для связанных городов:

DoCmd.OpenForm "Cities", , , "Country='" & Me.Country & "'"

...