Использование автозамены
В MS Access существует режим Автозамены, который позволяет автоматически заменять сокращения полными значениями. То есть вводится аббревиатура, а Автозамена сама подставляет расшифрованное наименование в поле.
40. Создайте автозамену при которой после ввода аббревиатуры ап MS Access будет автоматически подставлять расшифрованное наименование должности Агент по продажам. Для этого:
§ щелкните по кнопке Office, далее по кнопке Параметры Access. Откроется диалоговое окно Параметры Access, в котором выберите команду Правописание;
§ в правой области окна щелкните по кнопке Параметры автозамены. Откроется диалоговое окно Автозамена;
§ проверьте, чтобы был установлен флажок Заменять при вводе;
§ в поле заменять: введите образец ап;
§ в поле на: введите текст Агент по продажам;
§ щелкните по кнопке Добавить, а затем по кнопкам <Ok>;
§ проверьте, как работает созданная Автозамена. Для этого:
§ откройте таблицу Сотрудники и введите данные о новом работнике, приведенные в таблице 12. При этом в поле Должность введите символы ап и нажмите клавишу <Tab>. MS Access заменит сокращение ап на слова Агент по продажам;
Таблица 12.
Имя | Фами-лия | Должно-сть | Табельный номер | Отдел | Дата рождения | Дата найма | Зарп-лата |
Аманда | Ганд | Агент по продажам | Снабжения | 03.03.1971 | 08.02.95 |
§ закройте таблицу Сотрудники, сохранив изменения.
Отображение подчиненных таблиц
В MS Access имеется возможность отображения нескольких связанных таблиц в окне главной таблицы. Рассмотрим эту возможность на примере таблиц Заказчики, Заказы и Подробности заказов.
41. Откройте Схему данных (вкладка Работа с базами данных, группа Показать или скрыть).
На Схеме данных видно, что таблицы Заказчики и Заказы связаны отношением «один-ко-многим», т. е. одной записи таблицы Заказчики может соответствовать множество записей таблицы Заказы, а одной записи таблицы Заказы соответствует только одна запись таблицы Заказчики. Таблица Заказы связана с таблицей Подробности заказов тоже отношением «один-ко-многим».
42. Закройте Схему данных.
43. Откройте таблицу Заказчики. Перед полем Код заказчика расположен столбец, в котором для каждой записи отображается значок плюс (+).
44. В записи, в которой Код заказчика равен 2 щелкните левой кнопкой мыши на значке плюс. Откроется часть подчиненной таблицы Заказы, содержащая только те записи, которые связаны с записью в главной таблице Заказчики. Значок плюс при этом поменяется на минус.
45. В окне подчиненной таблицы Заказы щелкните на значке плюс на записи, в которой Код заказа равен значению 214. Откроется вложенное окно следующей подчиненной таблицы Подробности заказов.
46. Закройте таблицу Заказчики.
Если таблица, открытая в режиме Таблицы, не имеет подчиненных таблиц, то столбец со знаками плюс и минус отсутствует.
Если у таблицы имеется связанная с ней подчиненная таблица, которая не открывается как вложенная, то в главной таблице можно создать эту подтаблицу.
47. В таблице Конфеты создайте подтаблицу Подробности подарков. Для этого:
§ откройте таблицу Конфетыв режиме таблицы;
§ щелкните левой кнопкой мыши на значке плюс. Откроется диалоговое окно Вставка подтаблицы;
§ на вкладке Таблицы выберите имя Подробности подарков и щелкните по кнопке <Ok>. В результате MS Access развернет часть подчиненной таблицы Подробности подарков, содержащей записи, связанные с текущей записью таблицы Конфеты;
§ просмотрите полученный результат и закройте таблицу Конфеты, сохранив изменения.
48. Закройте базу данных Конфетная_фабрика, сохранив изменения.
Контрольные вопросы и задания:
§ способы создания таблиц в базе данных;
§ создание таблицы путем ввода данных;
§ требования к именам полей, таблиц и других объектов MS Access;
§ типы данных в таблице;
§ основные свойства полей таблицы;
§ создание подписи поля;
§ мастер подстановок (с фиксированным списком значений и списком, содержащемся в таблице или запросе), назначение и примеры;
§ форматы отображения данных (примеры);
§ маска ввода: определение и примеры;
§ понятие индекса, его назначение, типы и ограничения на использование;
§ целостность данных в таблицах MS Access: назначение, условия и правила, обеспечивающие целостность данных;
§ способы перемещения по записям и полям таблицы;
§ контроль и проверка введенных данных в таблицу, типы условий на значение, примеры;
§ проверка орфографии и режим автозамены;
§ отображение подчиненных таблиц в главной таблице.
10. Виды соединений между таблицами в запросах. создание запроса из фильтра. передача данных запроса в другие приложения
1. Запустите Microsoft Access и откройте из своей папки файл Конфетная_фабрика.
Виды соединений
В зависимости от решаемых задач соединение между таблицами в запросах может быть нескольких видов:
§ внутреннее (эквисоединение);
§ внешнее (левое или правое);
§ соединение по отношению (тэта-соединение);
§ рекурсивное.
Внутреннее соединение
Наиболее распространенным является внутреннее соединение (эквисоединение). При таком соединении таблицы должны быть связаны отношением «один-ко-многим». Соединение основывается на уникальном значении поля первичного ключа в одной таблице и значениях поля внешнего ключа в другой таблице.
В результирующее множество запроса с внутренним соединением попадают только те записи из главной таблицы (таблица «один»), для которых имеются соответствующие записи в подчиненной таблице (таблица «многие»).Подобного рода соединения между таблицами в запросе MS Access создает автоматически, если:
§ в таблицах имеются поля с одинаковыми именами и согласованными типами данных, причем одно из полей является ключевым;
§ соединение было явно задано в окне Схема данных.
Рассмотрим пример запроса на основе внутреннего соединения.
2. Откройте Схему данных (вкладка Работа с базами данных, группа Показать или скрыть). В Схеме данных найдите таблицы Заказчики и Заказы, которыесвязаны между собой связью «один-ко-многим» по общему полю Код заказчика. При этом таблица Заказчики находится на стороне «один», а таблица Заказы – на стороне «ко-многим».
3. Откройте таблицы Заказчики и Заказы в режиме таблицы. В таблице Заказы выполните сортировку по возрастанию по полю Код заказчика.
В таблице Заказчики содержится 327 записей, а в таблице Заказы – 413 (см. строку состояния). Причем, в таблице Заказы значения поля Код заказчика повторяются, т.к., согласно степени связи, один заказчик может сделать несколько заказов.
4. Закройте таблицы Заказчики и Заказы, сохранив изменения.
5. В Схеме данных щелкните правой кнопкой мыши по линии, соединяющей таблицы Заказчики и Заказы и выберите в контекстном меню команду Изменить связь.
6. В открывшемся диалоговом окне Изменение связей щелкните по кнопке Объединение. Откроется диалоговое окно Параметры объединения, в котором по умолчанию будет выбран первый вариант: Объединение только тех записей, в которых связанные поля обеих таблиц совпадают. Этот вариант соответствует внутреннему соединению.
7. Дважды щелкните по кнопке <Ok>, затем закройте Схему данных.
8. С помощью мастера запросов (вкладка Создание, группа Другие) создайте простой запрос, содержащий поля Код заказчика, Фамилия заказчика и Имя заказчика, которые находятся в таблице Заказчики. Присвойте запросу имя Список заказчиков и заказов.
9. В режиме таблицезапроса задайте сортировку данных по полю Код заказчика по возрастанию.
В созданном запросе число записей равно 327 (по числу заказчиков в одноименной таблице).
10. Перейдите в режим Конструктора запроса и добавьте таблицу Заказы(вкладкаКонструктор, группаНастройка запроса, кнопкаОтобразить таблицу), а из нее – поле Код заказа.
11. На вкладке Конструктор, в группе Результаты щелкните по кнопке Выполнить. В результате MS Access откроет запрос в режиме Таблицы.
12. В режиме таблице выполните сортировку по полю Код заказа по возрастанию.
Число записей в выполненном запросе будет равно 411 (по числу совпавших записей в связанных полях Код заказчика обеих таблиц). Это на две записи меньше, чем в таблице Заказы, поскольку у заказов с номерами 1 и 9 не определены заказчики.
13. В запросе Список заказчиков и заказовсохраните изменения, щелкнув по кнопке Сохранить.
Обратите внимание: в поле Код заказчика будут отсутствовать некоторые заказчики, например, с номерами 6, 17, 20, 21 и т.д. Это объясняется внутренним соединением таблиц в запросе, при котором в результирующее множество запроса попали только те записи из главной таблицы (таблица «один» - Заказчики), для которых имеются соответствующие записи в подчиненной таблице (таблице «многие» - Заказы).
Внешнее соединение
Для создания запроса, объединяющего все записи из одной таблицы и только те записи из второй таблицы, в которых связанные поля совпадают, используют внешнее соединение. В MS Access применяются правые и левые внешние соединения. Запрос, основанный на таблицах с левым внешним соединением, отображает все записи главной таблицы (таблица «один») с уникальным ключевым полем, независимо от того, имеются ли в связанных полях подчиненной таблицы (таблице «многие») совпадающие значения.14. На основе запроса Список заказчиков и заказовсоздайте запрос с левым внешним соединением. Для этого:
§ в запросе Список заказчиков и заказовпрейдите в режимКонструктора;
§ в верхней части конструктора щелкните правой кнопкой мыши по линии, соединяющей таблицы Заказчики и Заказы, и выберите в контекстном меню команду Параметры объединения;
§ в открывшемся диалоговом окне Параметры объединения выберите второй вариант: Объединение всех записей из «Заказчики» и только тех записей из «Заказы», в которых связанные поля совпадают. Этот вариант соответствует внешнему левому соединению. Щелкните по кнопке <Ok>;
§ в поле Код заказа в строке Сортировка выберите вариант по возрастанию;
§ на вкладке Конструктор, в группе Результаты щелкните по кнопке Выполнить. В результате MS Access откроет запрос в режиме Таблицы. Общее число записей в полученном запросе будет равно 470;
§ просмотрите полученный результат: первые 59 записей в поле Код заказа содержат пустые значения, это соответствует случаю, когда заказчики не сделали ни одного заказа;
15. Сохраните внесенные изменения в запрос под именем Запрос с левым внешним соединением. Для этого:
§ щелкните по кнопке Office и выполните команду Сохранить как. Откроется диалоговое окно Сохранение;
§ в диалоговом окне в поле Сохранение объекта введите имя запроса Запрос с левым внешним соединением, а в поле Как выберите название объекта Запрос;
§ щелкните по кнопке <Ok>. В результате в список запросов БД Конфетная_фабрика MS Access добавит новый запрос;
§ закройте Запрос с левым внешним соединением.
Запрос, основанный на таблицах с правым внешним соединением, отображает все записи подчиненной таблицы «многие», независимо от того, существуют ли в связанных с ними полях главной таблицы совпадающие значения.16. Откройте запрос Список заказчиков и заказовв режимеКонструктораи в диалоговом окне Параметры объединения выберите третий вариант: Объединение всех записей из «Заказы» и только тех записей из «Заказчики», в которых связанные поля совпадают. Этот вариант соответствует внешнему правому соединению таблиц в запросе. Щелкните по кнопке <Ok>.
17. На вкладке Конструктор, в группе Результаты щелкните по кнопке Выполнить. В результате MS Access откроет запрос в режиме Таблицы. Общее число записей в полученном запросе будет равно 413.
Записи в таблице со стороны многие, не имеющие связанных с ними записей в таблице один, обычно, но не обязательно, относятся к зависшим записям. Поэтому внешние соединения используются в системе поддержки БД для удаления (или редактирования) из таблиц «зависших» записей.
В запросе Список заказчиков и заказовпосле выполнения пп. 16-17 мы получили две «зависшие» записи, в которых поле Код заказа имеет значения 1 и 9. У этих записей не определены значения в поле Код заказчика, что является некорректным.
18. Используя кнопку Office, сохраните внесенные изменения в запросе под именем Запрос с внешним правым соединением.
19. Закройте Запрос с внешним правым соединением.
20. Откройте таблицу Заказы и записям, с номерами заказов 1 и 9 задайте в поле Код заказчика значения 12 и 155 соответственно.
21. Закройте таблицу Заказы.