Создание базы данных «Школа»
Создание базы данных «Школа»
Откройте СУБД Access. Создайте новую базу данных и сохраните в папке «Мои документы» под именем «Школьная база»
Справочно-вспомогательная таблица «Предметы»
1. Создайте справочно-вспомогательную таблицу «Предметы». В ней создайте три поля: «код предмета» (счетчик), «предмет» (текстовый), преподаватель (текстовый). Не заполняйте содержимое таблицы.
2. Теперь создадим форму для удобного ее заполнения. Создайте форму в режиме мастера. Из таблицы «Предметы» возьмите поля Предмет и Преподаватель. Сохраните форму под именем «Предметы» Перейдите в режим конструктора. Удалите из формы кнопки перехода, полосы прокрутки и область выделения. Выйдите из режима конструктора и запустите форму. Обратите внимание, как изменился ее внешний вид.
3. Перейдите снова в режим конструктора и добавьте снизу формы (в разделе примечания формы) место. Вставьте в это место три кнопки для работы с записями: предыдущая запись, добавить запись, следующая запись.
4. Добавьте ниже кнопок поле для показа количества введенных записей. Поле вставится вместе с надписью. В надпись введите «Количество предметов:». Правой кнопкой щелкните на поле и выберите Свойства. Перейдите на вкладку Данные и в строке Данные введите формулу =Count([предмет]) . Эта формула считает все записи в поле Предмет данной таблицы.
5. Введите при помощи этой формы данные о всех предметах, которые изучаются в 10-11 классах школы.
Справочная таблица «Ученики»
1. Создайте справочную таблицу «Ученики».В ней будут следующие поля: Код ученика (счетчик), Фамилия (текстовый), Имя (текстовый), Класс (числовой), Параллель (Текстовый), Группа (Текстовый).
2. Перейдите в строку «Класс» и выберите «Мастер подстановок». Выберите фиксированный набор, и в таблице в один столбец введите числа от 1 до 11 – это и будут подстановочные данные для поля Класс. Так же заполните подстановку для поля Параллель (А,Б,В,Г,Д) и для поля Группа (первая, вторая).
3. Так же, как и для таблицы Предметы, создайте форму для удобного заполнения данных об учениках (см. рис. Справа) Поле Всего учеников считает по полю Фамилия..
4. Заполните данные о своем классе и о других классах (10-х и 11-х)
Запросы на группировку
Для удобной работы с будущим журналом необходимо внести некоторые дополнения. Например, вы заметили, что когда вы заполняли форму Ученики, приходилось выбирать нужный класс из списка от 1 до 11. При работе с журналом, заполненным, например, только для 10-х и 11-х классов, нет нужды представлять весь список классов и параллелей. Поэтому такие поля на журнальных формах будут брать данные не из фиксированного списка, а из запросов на группировку.
- Создайте запрос
- В запрос включите только таблицу «Ученики».
-
Выберите всего один столбец – класс
- Включите групповые операции – группировка.
- Закройте запрос, сохранив его под именем «Всего классов»
- Откройте запрос. Заметьте, что в списке появились только те классы, учеников которых вы ввели.
- Аналогично создайте запрос «Всего параллелей». При правильной работе этого запроса должны выводиться буквы параллелей, реально существующих для введенных учеников.
Журнал учителя
Форма Журнал учителя должна обеспечивать удобную работу для учителя – предметника. Она должна позволять пользователю выбрать предмет, учителя-предметника, выбрать класс и параллель и дать доступ к оценкам тех учеников, которые обучаются в данном классе у выбранного учителя.
Сначала создадим универсальную таблицу для хранения всех оценок всех учеников по всем предметам.
Универсальная таблица «Журнал Оценок»
- Создайте таблицу в режиме конструктора, в которой создайте следующие поля: Код оценки (Счетчик), Фамилия(числовой), Предмет(числовой), Оценка(числовой), Дата(дата/время). Поля Фамилия и Предмет будут содержать коды учеников и предметов. Задача этих полей – связать таблицу Журнал Оценок с таблицами Ученик и Предметы.
- Выберите поле Оценка и введите мастером подстановки фиксированные значения оценки от 1 до 5.
- Выберите поле Предметы и при помощи мастера подстановки укажите данные из таблицы Предметы, и выберите поля Код предмета и Предмет. Создайте подстановку.
- Выберите поле Фамилия и при помощи мастера подстановки укажите данные из таблицы. Выберите таблицу Ученики и выберите поля Код ученика и Фамилия. Создайте подстановку.
-
Теперь подкорректируем автоподстановку так, чтобы в одном поле с фамилией ученика выводилось его имя. В конструкторе выделите поле Фамилия, перейдите на вкладку Подстановка и щелкните справа от поля «Источник строк» по кнопке. В появившемся конструкторе запросов во втором столбце измените текст с Фамилия на Фамилия&” “&Имя.
- Закройте конструктор, сохранив таблицу под именем «Журнал оценок».
- Проверим связи таблиц – при ЗАКРЫТЫХ окнах нажмите кнопку Схема данных
. При этом в окне схемы должны появиться все три таблицы, связанные по ключевым полям.
Усовершенствования
До создания классного журнала немного усовершенствуем то, что мы уже сделали. Вы помните вопрос о недочетах? Наверное, некоторые вы уже выявили для себя. Выделим два из них:
- При открытии формы они располагаются на экране бесконтрольно, причем одна может перекрывать другую. Это неудобно.
- Неудобно вводить дату оценки. Лучше бы сделать специальную форму для изменения даты.
Исправим первый недочет. Есть такой макрос – СдвигРазмер – он изменяет размер активной формы и ее координаты на экране. Координаты отсчитываются относительно верхнего левого окна Access до верхнего левого угла формы. Единицы измерения – сантиметры. Правда, эти сантиметры не всегда соответствуют реальным сантиметрам, и приходится несколько раз подбирать данные.
- Создадим макрос, настраивающий положение формы Классный Журнал. Договоримся, что при запуске она должна появляться посередине экрана вверху.
- Перейдите на Макросы, нажмите Создать.
- Выберите в первой строке макрос СдвигРазмер и внизу в аргументах введите По правому краю – 8см («см» не пишите, программа подставит автоматически), От верхнего края – 1см. Сохраните макрос под именем НастройкаЖурналаУчителя
- Аналогично создайте новый макрос с командой СдвигРазмер, в котором поставьте По правому краю – 1см, От верхнего края – 9см. и назовите макрос НастройкаОценокУчителя.Этот макрос будет настраивать местоположение журнала оценок.
- Когда эти макросы должны срабатывать? Тогда, когда нужная форма открывается. Свяжем эти макросы с соответствующими событиями форм.
- Войдите в режиме конструктора в форму Журнал учителя, перейдите на Макет – События и в строке Открытие выберите макрос НастройкаЖурналаУчителя. Закройте Макет и конструктор.
- Откройте в конструкторе форму Журнал учителя – оценки и аналогично свяжите с событием открытия макрос НастройкаОценокУчителя.Проверьте теперь, как и где открываются окна.
Первый недочет исправили. И научились управлять положением окон на экране. Теперь – исправление второго недочета. Создадим с нуля форму для выбора даты.
- В режиме КОНСТРУКТОРА (не мастера! – мы впервые создаем форму в режиме конструктора!) создайте форму.
-
Дважды щелкните в левом верхнем углу, перейдите в Макет и в поле Рисунок нажмите на кнопку справа и из папки (которая у вас может открыться автоматически) C:\Program Files\Microsoft Office\OFFICE11\BITMAPS\STYLES выберите понравившийся вам рисунок, например ACEXPDTN.GIF. В поле Мозаичное заполнение поставьте Да. Это заставит рисунок, который меньше формы по своим размерам, мозаикой заполнить форму. Закройте Макет.
-
Поставьте в левом верхнем углу поле со списком, выберите фиксированный набор значений и введите в один столбец числа от 1 до 31 – это дни месяца. Назовите список День.
-
Аналогично добавьте ниже поле со списком Месяц (числа от 01 до 12) и Год (числа от 2006 до 2009).
- Зайдите в Макет и уберите полосы прокрутки, область выделения и кнопки перехода. Закройте конструктор, сохраните форму под именемДата. Запустите форму и проверьте работу списков дней, месяцев и лет.
- Добавим поле, в котором будет синтезироваться выбранная дата. Именно из этого поля эта дата будет копироваться в журнал Оценок.
- Откройте в конструкторе форму Дата и правее списков поставьте поле (не поле со списком!) и назовите его Дата. Увеличьте (для удобства) его размеры и шрифт как поля, так и подписи к нему. Правой кнопкой щелкните на поле (а не на его надписи!) и выберите Свойства – Другие и в поле Имя введите Дата. Закройте макет.
- Также, заходя в свойства, измените имена для списков, назвав их соответственно День, Месяц и Год.
- Снова перейдите в свойства поля Дата, перейдите на Данные и справа от строчки Данные нажмите кнопку. В построителе выражений постройте выражение или введите строчку: [День] & "." & [Месяц] & "." & [Год]. Закройте построитель. Как вы заметили, эта формула объединяет текстовые данные дня, месяца и года через символ точки, что соответствует формату даты. Однако, чтобы эта строчка расценивалась как дата, необходимо задать маску ввода. Нажмите на кнопке справа от поля Маска ввода и выберите маску Краткий формат даты. Поставьте
блокировку на поле Дата. Закройте макет.
- Войдите в свойства списка День – Данные поставьте значение по умолчанию – 1, ограничиться списком - Да, в списке Месяц – 01 и ограничение списком, а в списке Год – 2007 и ограничение списком.
- Закройте конструктор и откройте форму Дата. Проверьте, как работает выбор даты.
-
Создайте макрос, который устанавливает поле Дата в координаты 16см от правого края и 9 см от верха. Назовите его НастройкаДаты. Свяжите этот макрос с событием открытия формы Дата.
- Откройте форму Дата, откройте форму Журнал учителя и в ней нажмите кнопку Открыть журнал. Все три формы не должны перекрывать друг друга (см. рис.). Если это не так, разберитесь, какую форму нужно передвинуть и измените данные соответствующего макроса и вновь проверьте.
- Автоматизация открытия. Сначала снимем режим модальности с формы Журнал учителя – оценки. Как вы помните, она открывается кнопкой Открыть журнал. А кнопка связана с макросом ОткрытьЖурналУчителя. Откройте этот макрос в режиме конструктора и смените Режим окна с Окно диалога на Обычное. Теперь в этом же макросе во второй строке поставим ту же команду, что и стояла в первой – ОткрытьФорму. В аргументах команды в поле Имя формы поставьте Дата. Закройте макрос.
- Откройте форму Журнал Учителя. Выберите предмет, класс и параллель и нажмите кнопку Открыть журнал. У вас должны открыться сразу две формы – Журнал учителя - оценки и Дата. Если теперь форма журнала «ушла» вниз, подкорректируйте макрос, который настраивает ее местоположение НастройкаОценокУчителя.
- Теперь создадим макрос, который должен копировать дату, введенную в Форме Дата и содержащуюся в его поле Дата в ячейку Дата активной строки таблицы оценок формы Журнал Учителя – оценки.
- Создайте новый макрос и в первой строчке выберите команду ЗадатьЗначение. Внизу, в аргументах, в поле Элемент введите при помощи построителя поле Дата формы Журнал учителя – оценки: Forms![Журнал учителя - оценки]![Дата]. В поле Выражение, введите, откуда для указанного элемента будет браться выражение – поле Дата формы Дата: Forms![Дата]![Дата].
- Сохраните макрос как ПодстановкаДаты.
-
Откройте форму Дата в режиме конструктора и под полем Дата поставьте кнопку. В настройках кнопки выберите Разное – Выполнить макрос – ПодстановкаДаты – текст – «Подставить Дату».
- Настройте размер кнопки и шрифт надписи кнопки. Закройте конструктор.
- Откройте форму Журнал учителя.
- Выберите предмет, класс, параллель и нажмите кнопку Показать журнал. Если все правильно, должны открыться две формы – Журнал учителя - оценки и Дата.
- Измените какие0ниюудь записи в журнале или создайте новые. Дату вводите при помощи формы Дата. При нажатии на кнопку Подставить дату дата должна заноситься в выбранную строчку журнала в раздел Дата.
- И последний недочет уберем – сделаем так, чтобы при изменении предмета, класса или параллели форма с оценками автоматически закрывалась. Создайте новый макрос, в первой строке выберите команду Закрыть, в Аргументах – Тип – Форма, Имя - Журнал учителя – оценки, Сохранение – Да. Сохраните макрос под именем ЗакрытьОценки.
- Сопоставьте этот макрос с событиями «Кнопка вниз» кнопок перехода по записям формы Журнал Учителя, а так же событиям Изменения спискам СписокКлассов и СписокПараллелей.
Создание Классного Журнала
Основная форма
-
Создадим в режиме конструктора (не мастера!) новую форму. Выйдите в Макет (дважды щелкнув по верхнему левому углу формы в режиме конструктора), и в поле Надпись введите «Классный журнал».
- Аналогично созданию формы Дата, настройте внешний вид формы – выберите фоновый рисунок, удалите полосы прокрутки, область выделения и кнопки перехода.
- Вставьте в верхнюю часть надпись и введите текст: Выберите класс. Измените размер шрифта на 16.
- Вставьте ниже два поля со списком. В надписи одного из них введите «Класс:», второго – «Параллель». Измените размер шрифта на 14.
- Войдите в свойства списка Класс (а не его надписи!) и в странице Другие в строке Имя введите Класс. В странице Данные установите режим Ограничиться списком. Значение по умолчанию поставьте 10.
- Так же измените имя списка параллелей на Параллель и поставьте ограничение списком. Значение по умолчанию – А.
- Закройте макет и конструктор и сохраните форму как Классный журнал.
Свяжем две формы.
-
В режиме конструктора откройте форму Классный журнал
- Добавьте снизу (там где раньше оставили место) кнопку. В настройках введите – Работа с формой – открыть форму. Нажмите Далее. Выберите форму «Журнал учителя – предметы». Далее. Выберите Показать все записи. Далее – Текст – «Открыть журнал» - Готово.
- Закройте конструктор и откройте форму. Выберите класс и параллель и нажмите кнопку Открыть журнал.
- Если все нормально, откроется форма с оценками и с выбором предмета. Но опять же в этой форме будут ВСЕ оценки ВСЕХ учеников по выбранному предмету.
Добавление фильтров
- Чтобы в открывающейся форме Классный журнал – предметы присутствовали данные о классе, выбранном в форме Классный журнал, необходимо настроить запрос подчиненной формы.
- Откройте форму Классный журнал – предметы в режиме конструктора. Перейдите на макет подчиненной формы и перейдите на страницу Данные. В строке Источник записей нажмите кнопку справа. В появившемся запросе в поле Класс, используя построитель выражений (правая кнопка мыши по строке Условие отбора), введите отбор по списку класс формы Классный журнал: Forms![Классный Журнал]![Класс], а условие отбора по параллели поставьте по полю Параллель формы Классный журнал: Forms![Классный Журнал]![Параллель].
- Закройте запрос, макет и конструктор.
- Откройте форму Классный журнал, выберите нужный класс и нажмите кнопку Открыть журнал. Если все верно, теперь в журнале при выборе предмета отображаются только оценки выбранного класса.
Дополнительные настройки
- Теперь сделаем так, чтобы форма с оценками была модальной по отношению к форме Классный журнал.
- Откройте в режиме конструктора форму Классный журнал – предметы. Перейдите в макет основной формы и в странице поставьте Да в строке Модальное окно. Закройте Макет и конструктор. Откройте формы Классный журнал и нажмите кнопку Открыть журнал. Заметьте, что пока не закроете форму с оценками, вы не сможете перейти к другим формам. Закройте обе формы.
-
Создайте два макроса НастройкаКлассногоЖурнала и НастройкаОценокКлассногоЖурнала (с командой СдвигРазмер). Эти макросы должны управлять местоположением форм Классный Журнал и Классный журнал – предметы. Свяжите макросы с событиями открытия этих форм (так же, как вы это делали на стр 5). Настройте их так, чтобы при открытии форм Классный Журнал и Классный журнал – предметы они располагались на экране так, как показано на рисунке.
Подставим даты
Для дальнейшей работы нам необходимо, чтобы все оценки в журнале имели даты. Поэтому откройте форму Журнал учителя, выберите предмет, класс, параллель и поставьте к тем оценкам дату, которые ее не имели.
Создание отчетов
Средние оценки по предмету
Создадим отчет, который будет выводить средние оценки учеников класса по выбранному предмету, а так же отчет, который выводит то же самое, но еще и в указанном диапазоне дат.
Для работы с такими отчетами нам нужны вспомогательные таблицы, которые создадим при помощи запросов.
Создание запросов
-
Выйдите на запросы и создайте запрос в режиме конструктора. Включите в него все таблицы – Ученики, Предметы и Журнал Оценок. В запросе первое поле вычисляется по полю Фамилия из таблицы Ученики, далее - Имя, Класс, Параллель (из той же таблицы Ученики), пятое поле – из поля Предмет таблицы Предметы, шестое – из поля Оценка таблицы Журнал Оценок и седьмое – из поля Дата таблицы Журнал оценок. Этот запрос должен содержать только данные о том классе, который выбран в форме Классный журнал, и о том предмете, который выбран в форме Классный журнал – предметы. Введите при помощи построителя выражений соответствующие условия отбора в нужные поля. Например, отбор по предметам производится по значению поле Предмет формы Классный журнал – предметы: [Forms]![Классный журнал - предметы]![Предмет].Сохраните запрос «Все оценки класса по предмету».
-
В главном окне базы скопируйте запрос и копию назовите как «Все оценки класса по предмету по датам». Откройте этот запрос в режиме конструктора и в поле Дата добавьте условие отбора по диапазону дат, который задается в форме Классный журнал – предметы: Between Forms![Классный журнал - предметы]![От] And Forms![Классный журнал - предметы]![До].
- Теперь, когда готовы запросы, которые из всех оценок фильтруют только нужную нам информацию, можно составить запросы на группировку, для того, чтобы вычислить средние оценки. Создайте в режиме конструктора запрос и в качестве источника введите запрос «Все оценки класса по предмету». Добавьте следующие поля - Фамилия, Имя, Оценка. Включите групповые операции.
.
- В подле оценка вместо групповых операций Группировка выберите Выражение, а в верхней строке (Поле) введите выражение: Round(Avg([Все оценки класса по предмету]!Оценка)). Функция Avg вычисляет среднее арифметическое по полю Оценка запроса Все оценки класса по предмету, а функция Round округляет полученное значение до ближайшего целого числа. Добавьте сортировку по возрастанию по полю Фамилия. Закройте запрос и назовите его Средние оценки.
- Создайте точно такой же запрос, повторив действия пунктов 3-4, только в качестве источника выберите запрос Все оценки класса по предмету по датам. Это запрос должен делать то же самое - вычислять средние оценки, но уже только по интервалу дат, то есть на основании запроса Все оценки класса по предмету по датам. Сохраните запрос под именем Средние оценки по датам.
Вызов отчетов
Теперь, когда запросы и отчеты готовы, создадим в классном журнале кнопки для их вызова.
-
Закройте все отчеты и открытые формы. Откройте в режиме конструктора форму Классный журнал – предметы.
-
Находясь во вкладке Все оценки, поставьте справа от подчиненной таблицы кнопку для просмотра средних оценок. При настройке параметров введите – Работа с отчетом – Просмотр отчета – Средние оценки – Текст – «Средние оценки (просмотр)» - Готово.
- Аналогично, перейдя на вкладку Выбор по датам, поставьте кнопку для просмотра отчета Средние оценки по датам, назвав ее соответственно.
- Закройте конструктор, отройте форму Классный журнал и проверьте работу форм и отчетов.
- Добавьте кнопки (ниже только что созданных) для печати отчетов.
Другие отчеты.
-
Самостоятельно создайте отчеты, которые выводили бы ВСЕ (а не средние) оценки, как за весь период обучения (назовите его Все оценки), а так же ВСЕ оценки за выбранный период дат. (назовите его Все оценки по датам).
-
Поставьте соответствующие кнопки на форму Классный журнал – предметы, при нажатии на которые можно будет вывести отчеты на просмотр или на печать.
Создание базы данных «Школа»
Откройте СУБД Access. Создайте новую базу данных и сохраните в папке «Мои документы» под именем «Школьная база»
Справочно-вспомогательная таблица «Предметы»
1. Создайте справочно-вспомогательную таблицу «Предметы». В ней создайте три поля: «код предмета» (счетчик), «предмет» (текстовый), преподаватель (текстовый). Не заполняйте содержимое таблицы.
2. Теперь создадим форму для удобного ее заполнения. Создайте форму в режиме мастера. Из таблицы «Предметы» возьмите поля Предмет и Преподаватель. Сохраните форму под именем «Предметы» Перейдите в режим конструктора. Удалите из формы кнопки перехода, полосы прокрутки и область выделения. Выйдите из режима конструктора и запустите форму. Обратите внимание, как изменился ее внешний вид.
3. Перейдите снова в режим конструктора и добавьте снизу формы (в разделе примечания формы) место. Вставьте в это место три кнопки для работы с записями: предыдущая запись, добавить запись, следующая запись.
4. Добавьте ниже кнопок поле для показа количества введенных записей. Поле вставится вместе с надписью. В надпись введите «Количество предметов:». Правой кнопкой щелкните на поле и выберите Свойства. Перейдите на вкладку Данные и в строке Данные введите формулу =Count([предмет]) . Эта формула считает все записи в поле Предмет данной таблицы.
5. Введите при помощи этой формы данные о всех предметах, которые изучаются в 10-11 классах школы.
Справочная таблица «Ученики»
1. Создайте справочную таблицу «Ученики».В ней будут следующие поля: Код ученика (счетчик), Фамилия (текстовый), Имя (текстовый), Класс (числовой), Параллель (Текстовый), Группа (Текстовый).
2. Перейдите в строку «Класс» и выберите «Мастер подстановок». Выберите фиксированный набор, и в таблице в один столбец введите числа от 1 до 11 – это и будут подстановочные данные для поля Класс. Так же заполните подстановку для поля Параллель (А,Б,В,Г,Д) и для поля Группа (первая, вторая).
3. Так же, как и для таблицы Предметы, создайте форму для удобного заполнения данных об учениках (см. рис. Справа) Поле Всего учеников считает по полю Фамилия..
4. Заполните данные о своем классе и о других классах (10-х и 11-х)
Запросы на группировку
Для удобной работы с будущим журналом необходимо внести некоторые дополнения. Например, вы заметили, что когда вы заполняли форму Ученики, приходилось выбирать нужный класс из списка от 1 до 11. При работе с журналом, заполненным, например, только для 10-х и 11-х классов, нет нужды представлять весь список классов и параллелей. Поэтому такие поля на журнальных формах будут брать данные не из фиксированного списка, а из запросов на группировку.
- Создайте запрос
- В запрос включите только таблицу «Ученики».
-
Выберите всего один столбец – класс
- Включите групповые операции – группировка.
- Закройте запрос, сохранив его под именем «Всего классов»
- Откройте запрос. Заметьте, что в списке появились только те классы, учеников которых вы ввели.
- Аналогично создайте запрос «Всего параллелей». При правильной работе этого запроса должны выводиться буквы параллелей, реально существующих для введенных учеников.
Журнал учителя
Форма Журнал учителя должна обеспечивать удобную работу для учителя – предметника. Она должна позволять пользователю выбрать предмет, учителя-предметника, выбрать класс и параллель и дать доступ к оценкам тех учеников, которые обучаются в данном классе у выбранного учителя.
Сначала создадим универсальную таблицу для хранения всех оценок всех учеников по всем предметам.
Универсальная таблица «Журнал Оценок»
- Создайте таблицу в режиме конструктора, в которой создайте следующие поля: Код оценки (Счетчик), Фамилия(числовой), Предмет(числовой), Оценка(числовой), Дата(дата/время). Поля Фамилия и Предмет будут содержать коды учеников и предметов. Задача этих полей – связать таблицу Журнал Оценок с таблицами Ученик и Предметы.
- Выберите поле Оценка и введите мастером подстановки фиксированные значения оценки от 1 до 5.
- Выберите поле Предметы и при помощи мастера подстановки укажите данные из таблицы Предметы, и выберите поля Код предмета и Предмет. Создайте подстановку.
- Выберите поле Фамилия и при помощи мастера подстановки укажите данные из таблицы. Выберите таблицу Ученики и выберите поля Код ученика и Фамилия. Создайте подстановку.
-
Теперь подкорректируем автоподстановку так, чтобы в одном поле с фамилией ученика выводилось его имя. В конструкторе выделите поле Фамилия, перейдите на вкладку Подстановка и щелкните справа от поля «Источник строк» по кнопке. В появившемся конструкторе запросов во втором столбце измените текст с Фамилия на Фамилия&” “&Имя.
- Закройте конструктор, сохранив таблицу под именем «Журнал оценок».
- Проверим связи таблиц – при ЗАКРЫТЫХ окнах нажмите кнопку Схема данных
. При этом в окне схемы должны появиться все три таблицы, связанные по ключевым полям.