#sql #database #ms-access #ms-access-2013
#sql #База данных #ms-access #ms-access-2013
Вопрос:
Похоже, моя база данных работает некорректно. Среди прочего, что я обнаружил на этом пути (!), я не могу получить значения платежей за экзамены в таблице ПЛАТЕЖЕЙ, чтобы они отображались в таблице экзаменов, как они отображаются для классов в таблице КЛАССОВ.
Вот таблица отношений в Access.
Я хотел бы, чтобы в таблице EXAM отображались платежи, но это не так, и отображаются только записи из таблицы ПЛАТЕЖЕЙ для классов, подобных here .
Вот значения в таблице ПЛАТЕЖЕЙ за экзамены, которые я хотел бы
.
Я не могу получить полный SQL фактической базы данных из Access, поскольку он этого не позволяет, но я могу получить некоторый SQL, выполнив запрос со всеми таблицами, но имейте в виду, что я не могу запрограммировать какие-либо предложения в базу данных, только я могу изменить отношения и типы соединений на экране визуальных отношений: pastebin.com/RS6tT8C3
SELECT
FROM (Parent INNER JOIN Student ON Parent.[Parent ID] = Student.[Parent ID]) INNER JOIN (([Exam Type] LEFT JOIN (Exam INNER JOIN [Exam Results] ON Exam.[Exam ID] = [Exam Results].[Exam ID]) ON [Exam Type].[Exam Type ID] = Exam.[Exam Type ID]) RIGHT JOIN (([Class Type] LEFT JOIN (Class INNER JOIN Attendance ON Class.[Class ID] = Attendance.[Class ID]) ON [Class Type].[Class Type ID] = Class.[Class Type ID]) RIGHT JOIN Payment ON Class.[Class ID] = Payment.[Class ID]) ON Exam.[Exam ID] = Payment.[Exam ID]) ON (Student.[Student ID] = Payment.[Student ID]) AND (Student.[Student ID] = [Exam Results].[Student ID]) AND (Student.[Student ID] = Attendance.[Student ID]);
Вчера чрезвычайно полезный менеджер базы данных предложил мне в IRC, что я должен сделать:
payments left join exams on examid = examid left join classes classid = classid
Что, я полагаю, я смог сделать, изменив параметр типа соединения на вкладке «Отношения», но, похоже, это не сработало. Я только что выполнил 1 модуль базы данных без программирования на SQL, так что это была крутая кривая обучения!
Дошло до того, что все кажется слишком сложным, и я теряю представление о вещах, lol, Если бы кто-нибудь мог дать мне какой-либо совет в ближайшие несколько часов, поскольку у меня есть задание, которое нужно сдать сегодня, тогда это было бы очень ценно. Спасибо!
** Я также включу полный файл базы данных.
Ответ №1:
Сначала давайте посмотрим, находимся ли мы на одной странице. Это выглядит так, как будто вы хотите иметь возможность видеть платежи за экзамены при выборе дополнительной таблицы. если это так, перейдите к таблице exam и переключитесь на Design Mode
затем выберите Property Sheet
, а затем измените поле под Subdatasheet Name
на таблицу, которую вы хотите. затем сопоставьте [Exam ID]
под Link Child Filds
и Link Master Fields
PS. Это идеальный способ представления данных пользователям, вам следует рассмотреть возможность использования форм для лучшего контроля. Просто примечание, хотя и не по теме, не рекомендуется использовать пробелы в именах таблиц или заголовках столбцов таблицы.