Ошибка определения недопустимого поля при попытке связать две таблицы

#ms-access #ms-access-2016

#ms-access #ms-access-2016

Вопрос:

Я пытаюсь связать таблицу «Subject» с таблицей «StudentSubject» на изображении ниже, но я получаю ошибку «Недопустимое определение поля ‘SubjectID’ в определении индекса или отношения». при попытке сделать это. Конечная цель состоит в том, что я хочу создать отношение «многие ко многим» между учащимся и предметом, такое, чтобы учащийся мог изучать много предметов, а предмет может быть изучен многими учащимися. Я уверен, что это основная ошибка, но я не нашел общего решения этой проблемы, и я устал от Access.

введите описание изображения здесь

Я перетаскиваю «SubjectID» из таблицы Subject в SubjectID из таблицы StudentSubject и пытаюсь создать связь, устанавливая оба флажка для обеспечения ссылочной целостности. Возвращает ошибку.

Вот свойства для соответствующей таблицы:

введите описание изображения здесь

И вот свойства для таблицы StudentSubject:

введите описание изображения здесь

Свойства те же, поэтому я не уверен, почему это не работает. Это работает, если я не включаю ссылочную целостность, но тогда это отношение «один к одному», и я подумал, что оно должно быть «один ко многим», поскольку должно быть несколько студентов, изучающих один и тот же предмет.

Был бы признателен за любые советы по этой ошибке, спасибо.

Комментарии:

1. Идентификатор студента в таблице StudentSubject — определяется ли он как длинное целое число того же формата, что и поле AutoNumber, к которому вы его присоединяете?

2. Я пытаюсь связать его с SubjectID, а не StudentID, но да, все они имеют тип Long Integer.

Ответ №1:

Чтобы установить эту связь, ваша объединяющая таблица StudentSubject SubjectID не должна иметь тип autonumber, это должен быть только тип Number. Автоматический номер должен быть указан в SubjectID в таблице Subject

Комментарии:

1. Это работает! Но это все еще отношение «один к одному», есть ли способ сделать его «один ко многим»?

2. Удалите уникальный индекс на StudentSubject.SubjectID . @Lou

3. Идеальный. Спасибо @Andre и CJtheLion, теперь это работает.

Ответ №2:

Здесь что-то не так … проверьте свои поля / типы данных, Пока все определено правильно, у вас будет один-много со всех сторон введите описание изображения здесь