Реализация приложения базы данных в СУБД Access
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Таблицы

Access хранит данные в таблицах. Таблицы являются основной частью каждой БД. Проектирование таблиц в Access можно выполнять с помощью мастера таблиц и конструктора.

Конструирование таблиц. Мастер таблиц

Конструирование таблицы допускается выполнять как с помощью Конструктора, так и Мастера Таблиц.

Внимание! Первое поле данных таблицы всегда обеспечивает однозначную идентификацию данных, находящихся в строке.

Типичными названиями таких ключевых полей являются, например, “Номер дела”, “Код товара”, “Код занятия”. В конструкторе таблиц они всегда расположены первыми в поле списка Образцы полей. При создании таблицы в Мастер таблиц ключевое поле можно установить автоматически или самостоятельно. Затем можно вернуться к изменению структуры таблицы, начать ввод данных непосредственно в таблицу, либо ввод данных с помощью формы, создаваемой мастером.

Конструктор таблиц

Конструктор таблиц предназначен для создания или изменения, ранее созданных таблиц, описания их структуры. Созданную или сконструированную таблицу можно либо открыть для ввода данных, либо для изменения. Для ввода данных в таблицу надо нажать кнопку Открыть на закладке Таблицы главного окна БД. Для внесения изменений в структуру ранее созданной таблицы нажать кнопку Конструктор на той же закладке. Access открывает таблицу в режиме конструктора с перечислением структурных составляющих таблицы, т.е. перечисляются имена полей активной таблицы, типы данных и их описание:

Рисунок 5.1 - Таблица в режиме Конструктора

Имена полей располагаются одно под другим. В таблице имена полей должны быть уникальными, в именах полей запрещено использование символов знаков препинания и скобок. Тип данных можно ввести или выбрать из раскрывающегося списка типов данных. Список можно вызвать, если щёлкнуть курсором мышки в конце ячейки Тип данных соответствующего поля. Список содержит следующие типы: Текстовый, Поле Мемо, Числовой, Дата/Время, Денежный, Счетчик, Логический, Поле объекта OLE, Гиперссылка, Мастер подстановок. В каждом поле должна храниться информация только одного типа.

Наиболее часто используется тип данных Текстовый, это текст или числа, не требующие проведения расчетов (число символов, не превышающее минимальное 255). Тип Мемо следует выбрать для хранения больших текстов (до 65535 символов). Числовой тип - данные, используемые для проведения расчетов. Счётчик - уникальные последовательно возрастающие (на 1) или случайные числа, автоматически вводящиеся при добавлении каждой новой записи в таблицу. Значения полей типа счетчика обновлять нельзя. Поле объекта OLE - объект (например, электронная таблица Excel, документ Word, рисунок, звукозапись или другие данные в двоичном формате), связанный или внедренный в таблицу Access.

Описание поля носит сопроводительный характер для разработчика, комментирующего свои разработки соответствующими описаниями.

В нижней части окна конструктора таблицы приведены Свойства поля на двух закладках: Общие и Подстановка (рисунок 5.1), в них отображаются дополнительные характеристики текущего поля. Так, например, для текстового поля можно объявить длину этого поля, для денежных - количество разрядов после запятой, для телефонных номеров - маску ввода: 99-99-99. При создании таблиц особое внимание необходимо обратить на следующие свойства:

Свойство Условие на значение определяет требования к данным, вводящимся в запись, в поле или в элемент управления.

Свойство Сообщение об ошибке позволяет указать текст сообщения, выводящегося на экран, если введенные данные нарушают условие, определенное в свойстве

Свойство Обязательное поле определяет обязательность ввода данных в это поле .

Свойство Пустые строки используется для разрешения ввода в данное поле пустых строк

Свойство Индексированное поле (Indexed) используется для поиска и сортировки записей по одному полю таблицы. Это свойство определяет индекс, задаваемый по одному полю. Индекс ускоряет выполнение запросов, в которых используются индексированные поля и операции сортировки и группировки. Например, если часто выполняется поиск по полю «Фамилия» в таблице «Сотрудники», следует создать индекс для этого поля. Поле может содержать уникальные или повторяющееся значения. Например, в таблице «Сотрудники» можно создать индекс по полю «КодСотрудника», которое содержит уникальные значения кода или по полю «Фамилия», которое может содержать повторяющиеся значения.

Свойство Индексированное поле (Indexed) может иметь следующие значения.

Значение Описание
Нет (Значение по умолчанию.) Индекс не создается.
Да (Допускаются совпадения) В индексе допускаются повторяющиеся значения.
Да (Совпадения не допускаются) Повторяющиеся значения в индексе не допускаются

Первое поле таблицы, как правило, является ключевым.

Чтобы установить ключевое поле, необходимо выбрать соответствующее поле, а затем кнопку Определить ключ на панели инструментов. Таким образом, в дальнейшем при вводе данных в поле, определённое как ключевое, Access автоматически вводит только уникальные значения. Содержимое поля с первичным ключом обеспечивает однозначную идентификацию записи.

Внимание! Поля с типами Мемо или поля объекта OLE не могут быть первичными ключами.

В режиме конструктора можно изменить имеющиеся поля и добавить новые.

5.1.3 Установление связей между таблицами

Установление связи между таблицами выполняется в окне Схема данных из меню Сервис (имеется одноимённая кнопка). . Для того, чтобы установить связь следует добавить связываемые таблицы в окно Схема данных: в этом окне вызвать контекстное меню, выбрать пункт Добавить таблицы, затем из списка имеющихся таблиц отметить те, которые надо поместить в поле окна Схема данных. При очередной отметке выбранная таблица со списком имен будет появляться в окне схемы данных.

Установление связи между таблицами выполняется буксировкой ключевого поля одной таблицы на связываемое поле в другой таблице, внутри окна Схема связи. Тип создаваемой связи зависит от полей, для которых определяется связь.

Рисунок 5.2 - Вид схемы связи реляционной базы данных

Запросы

Запросы обеспечивают быстрый и эффективный доступ к данным, хранящимся в таблице. Применение запросов дополняет возможности таблиц Access: разрешает использовать вычисляемые поля, сортирует записи таблицы согласно указанному ключу (в таблице они сортируются по первичному ключу) и пр.

На основании запроса можно разработать форму или отчет. Этот процесс не отличается от процесса создания формы или отчета на основе таблицы.

Создание запросов

Для создания запроса в окне базы данных следует выбрать кнопку Создать и далее в окне Новый запрос выбрать режим его создания: Конструктор, Простой запрос, Перекрёстный запрос, Повторяющиеся записи, Записи без подчинённых.

Режим Конструктор на первом шаге создания запроса требует указать, какие добавить таблицы в бланк запроса. Список созданных пользователем таблиц выводится. Количество добавляемых в запрос таблиц определяет пользователь из соображений решаемого вопроса, т.е. из каких таблиц можно получить данные по поставленному вопросу. Выбранные в бланк запроса таблицы необходимо связать линиями связи через одноимённые поля, выбрав подходящий тип связи. Связь устанавливается буксировкой поля из одной таблицы в другую. Если схема связи для таблиц была установлена заранее, то для выбираемых таблиц автоматически добавляются связи.

Итоговые запросы

При необходимости проанализировать данные на поиск статистических функций, для каких либо данных можно воспользоваться итоговыми запросами. В итоговых запросах используются два типа полей:

· · Поля, по которым осуществляется группировка данных;
· · Поля, для которых проводятся вычисления.

Дополнительно можно включить еще поля для определения условий.

Чтобы составить итоговый запрос, находясь в режиме конструктора запроса, следует выбрать Вид/Групповые операции. В результате чего в бланке запроса появиться строка Групповые операции. Затем для соответствующего поля вызвать раскрывающийся список функций итоговых расчетов (щёлкнув курсором мышки в строке групповые операции бланка запроса), в нём необходимо выбрать функцию “Группировка”. Например, если имеется список работающих, то можно выполнить расчет средней заработной платы по каждому цеху. Для этого группировка выполняется по полю - номер цеха, а вычисление функции AVG (среднего) для поля заработная плата. Можно еще ввести условие отбора фамилий, начинающихся с определенной буквы.

5.2.3 Запрос к связанным таблицам

Такие запросы создают, если в одном запросе необходимо обработать информацию одновременно из нескольких таблиц. При этом автоматически учитывается отношения между таблицами.

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

Вначале необходимо определить параметры связи. Укажите на соединительную линию и выберите команду Вид/Параметры объединения. В результате откроется диалоговое окно, в котором предлагаются три опции для определения параметров связи. Выберите подходящую из опций и нажмите ОК.

 

Запросы удаления

Удаление записей вручную с помощью команд Правка/Удалить занимает много времени, а также сопровождается часто ошибками. Для автоматического удаления ненужных записей составляется запрос - выбор на удаление.

В режиме конструктора запроса выбрать таблицу, в которой будет производиться удаление, в бланке запроса установить критерии (условия) отбора записей для удаления. Затем просмотрите результат выполнения запроса, отображаемый в режиме таблицы. Лишь в том случае, если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать запрос выбора в запрос удаления.

Для этого в строке меню выбрать Запрос/Удаление. После этого Access выключает в бланке запроса строки “Сортировка” и “Вывод на экран”. Для запросов удаления эти строки не нужны. Кроме того, для всех колонок бланка запроса в новой строке “Удаление” отображается текст “Условие”. Однако критерии при этом не меняются.

Если выполнить запрос выбором кнопки Выполнить, то Access не отобразит на экране результат выполнения запроса. Вместо него появиться сообщение о том, сколько записей будет удалено в исходной таблице. Можно прервать процесс удаления нажатием кнопки Отмена. Нажатие кнопки ОК приводит к безвозвратному удалению записей, удовлетворяющих критериям запроса.

Инструкция DELETE

Назначение: создание запроса на удаление записей из одной или нескольких таблиц, перечисленных в предложении FROM, которые удовлетворяют предложению WHERE.

Пример.

Удалить записи о всех сотрудниках, которые занимают должность «Стажер» и имеют запись в таблице «Оплата». Между таблицами «Сотрудники» и «Оплата» установлена связь 1:1

DELETE Сотрудники.*FROM Сотрудники INNER JOIN Оплата ON Сотрудники.КодСотрудника=Оплата.КодСотрудника WHERE Сотрудники.Должность='Стажер'.

 

Запросы на обновление

При необходимости выполнения одинаковых замен воспользуйтесь запросом на обновление. Сначала создайте запрос выбора и введите критерии для отбора изменяемых записей. Только в том случае, если результат запроса отвечает заданным требованиям, следует преобразовать его в запрос на обновление. Для этого выберите Запрос/Обновление. При этом будут выключены строки “Вывод на экран и “Сортировка” в бланке запроса. Обе строки не нужны для запроса на обновления. Вместо них включается новая строка “Обновление”. В эту строку следует ввести новые выражения для заменяемых записей. Обратите внимание, что тип данных выражения должен совпадать с типом данных поля исходной таблицы. Замена выполняется аналогично запросу - удаления, сначала выдается предупреждение, что имеется некоторое количество записей, удовлетворяющих условию отбора, при дальнейшем выборе кнопки ОК обновление будет выполнено, при выборе отмены, выполнение запроса будет прекращено.

Инструкция UPDATE

Назначение: создание запроса на обновление записей, который изменяет значение полей указанной таблицы на основе заданного условия отбора.

Пример.

Увеличить на 10 процентов цену на все товары поставщика, имеющего код 8, поставки которых еще не прекращены.

UPDATE Товары SET Цена = Цена * 1.1 WHERE КодПоставщика = 8

AND ПоставкиПрекращены = No.

Перекрестные запросы

Такие запросы предназначены для отображения данных итоговых запросов, когда данные сгруппированы по нескольким полям.

Представьте себе таблицу товаров, которая содержит три поля данных: “Тип”, “Поставщик” и “Цена”. Для каждой категории товаров требуется определить суммы цен товаров с указанием поставщика.

Поместите в окно конструктора запроса таблицу “Товары”. Затем включите строку “Групповая операция”, выбрав Вид/Групповые операции. После этого отбуксируйте поле данных “Тип” в бланк запроса. Для этого поля выберите из списка значение “Группировка”. Теперь во втором столбце бланка запроса выберите имя поля “Поставщик”. Для этого столбца также выберите значение “Группировка”. Последним в бланк запроса отбуксируйте поле “Цена”. Для этого поля выберите функцию “Sum”.

При выполнении запроса его результат отображается в режиме таблицы, в первом столбце которой будут все типы товаров, во втором – для каждого типа будут приведены номера поставщиков, а в последнем столбце – суммы цен товара данного типа и данного поставщика.

Теперь необходимо итоговый запрос превратить в перекрестный запрос. Для этого из меню выберите команду Запрос/ Перекрестный.

Выбор данной команды приводит к замене в бланке запроса строки “Вывод на экран” на новую строку “Перекрестная таблица”. Все остальные параметры остаются без изменения. Поле “Тип” исходной таблицы будет использовано в качестве заголовка строк. Поэтому из поля списка “Перекрестная таблица” выберите элемент “Заголовок строк”. Для столбца “Поставщик” выберите из списка “Перекрестная таблица” элемент “Заголовок столбцов”.

Инструкция TRANSFORM

Назначение: создание перекрестного запроса (запрос, возвращающий данные в виде электронной таблицы, используя указанные поля как заголовки строк и столбцов, и способный возвращать итоговые данные). Перекрестный запрос позволяет просматривать данные в более компактной форме, чем при работе с запросом на выборку.

Пример.

Создать перекрестный запрос, показывающий распределение продаж по месяцам указанного пользователем года. Месяцы должны определять заголовки столбцов слева направо, а марка товаров – заголовки строк сверху вниз.

PARAMETERS [Год продажи ?] LONG;

TRANSFORM

Sum (Заказано.Количество * (Заказано.Цена – (Заказано.Скидка / 100) * Заказано.Цена)) AS Продажи

SELECT Марка

FROM Заказы INNER JOIN

(Товары INNER JOIN Заказано ON Товары.КодТовара = Заказано.КодТовара) ON Заказы.КодЗаказа = Заказано.КодЗаказа

WHERE DatePart(“yyyy”, ДатаРазмещения) = [ Год продажи?]

GROUP BY Марка

ORDER BY Марка

PIVOT DatePart(“m”, ДатаРазмещения);

В этом примере перед инструкцией TRANSFORM стоит оператор PARAMETERS, который запрашивает у пользователя значение переменной «Год продажи?». Это позволяет построить запрос с параметром.

Формы

Формы являются наиболее удобным средством отображения данных в Access. Преимущество формы для ввода и редактирования данных состоит в наглядности, так как записи таблицы или запроса представлены в форме в удобном графическом виде. В форме можно создать необходимые для решения своей задачи элементы управления: закладки, кнопки, списки, флажки и т.д.

Режимы для создания форм

Создавать новые формы можно в разных режимах: можно воспользоваться автоформами в столбец, ленточной, таблицей или мастером форм, или конструктором. Режим создания формы выбирается из предлагаемого  списка режимов на первом шаге создания формы.

Дата: 2018-11-18, просмотров: 656.