Использование автозамены

В 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. Закройте таблицу Заказы.

Наши рекомендации