Обычно БД представляются в виде совокупности взаимосвязанных файлов или таблиц, предназначенных для решения конкретной задачи.
Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного вида. Каждая строка таблицы содержит данные об одном объекте (например, автомобиле, компьютере, клиенте), а столбцы таблицы содержат различные характеристики этих объектов - атрибуты (например, номер двигателя, марка процессора, телефоны фирм или клиентов).
Строки таблицы называются записями. Все записи таблицы имеют одинаковую структуру - они состоят из полей (элементов данных), в которых хранятся атрибуты объекта. Каждое поле записи содержит одну характеристику объекта и представляет собой заданный тип данных (например, текстовая строка, число, дата).
Для идентификации записей используется первичный ключ. Первичным ключом называется набор полей таблицы, комбинация значений которых однозначно определяет каждую запись в таблице.
Проектирование БД является очень важным этапом, от которого зависят последующие этапы разработки СУБД. Время, затраченное разработчиком на проектирование БД, обычно окупается высокой скоростью реализации проекта.
Перед созданием базы данных необходимо располагать описанием выбранной предметной области, которое должно охватывать реальные объекты и процессы, иметь всю необходимую информацию для удовлетворения предполагаемых запросов пользователя и определить потребности в обработке данных.
На основе такого описания на этапе проектирования базы данных осуществляется определение состава и структуры данных предметной области, которые должны находиться в базе данных и обеспечивать выполнение необходимых запросов и задач пользователя. Структура данных предметной области может отображаться информационно-логической моделью. На основе этой модели легко создается реляционная база данных.
Под проектированием понимают процесс создания описаний новой системы, которая способна функционировать при постоянном совершенствовании ее технических, программных, информационных составляющих и расширять спектр реализуемых управленческих функций и объектов взаимодействия.
Целью концептуального проектирования является разработка БД на основе описания предметной области. Это описание должно содержать совокупность документов и данных, необходимых для загрузки в БД, а также сведения об объектах и процессах, характеризующих предметную область. Такое описание охватывает весь класс реальных объектов, процессов и явлений, т.е. сущностей, информация о которых должна содержаться в БД и обеспечивать реализацию возможных запросов к БД и решение задач. Разработка БД начинается с определения состава данных, подлежащих хранению в базе для обеспечения выполнения запросов пользователя. Далее производится их анализ и структурирование.
Целью логического проектирования является выбор конкретной СУБД и преобразование концептуальной модели в логическую. Для реляционной БД этот этап состоит в разработке структуры таблиц, связей между ними и определении ключевых реквизитов.
Этап физического проектирования дополняет логическую модельхарактеристиками, которые необходимы для определения способов физического хранения и использования БД, объема памяти и типа устройств для хранения.
Наиболее рациональным считается сочетание перечисленных подходов к проектированию. Это связано с тем, что на начальном этапе, как правило, еще не имеется исчерпывающих сведений о всех задачах и пришлось бы отложить проектирование и создание БД до постановки всех задач. Использование такой технологий удобно потому, что средства создания реляционной БД в СУБД позволяют на любом этапе разработки внести изменения в БД и модифицировать ее структуру без ущерба для введенных ранее данных. Эта технология предполагает использование предварительных сведений о необходимости получения из БД различной информации.
В результате проектирования БД должна быть разработана информационно-логическая модель (ИЛМ) данных, т.е. определен состав реляционных таблиц, их структура и логические связи. Структура реляционной таблицы определяется составом полей, типом и размером каждого поля, а также ключом таблицы.
Информационно-логическая модель отображает данные предметной области в виде совокупности информационных объектов и связей между ними. Эта модель представляет данные, подлежащие хранению в базе данных.
СУБД MS Access входит в состав Microsoft Office и предназначена для работы с реляционными БД, т.е. представленными в табличной форме. В отличие от табличного процессора Excel, Access имеет более развитые средства для отбора данных из взаимосвязанных таблиц, формирования новых таблиц и отчетов.
Характерной особенностью баз данных, созданных в Access, является хранение создаваемых таблиц и средств для обработки данных в одном файле.
Достоинством Access является возможность создания СУБД (т.е. программы управления) без программирования. Однако, для сложных СУБД применение программирования на встроенном языке Visual Basic for Applications (VBA) позволяет повысить эффективность системы управления
Реляционная модель данных представляет данные в виде двумерной таблицы. Табличная структура данных отражает отношения между реальными объектами и их характеристиками. Поиск и обработка записей не зависят от организации хранения данных в памяти компьютера.
Основной принцип реляционных структур баз данных: получение из таблицы необходимых отношений и формирование новых.
На основе первичной таблицы при помощи логических операций формируется новая таблица соответствующей структуры. Каждый файл соответствует какому-нибудь понятию из предметной области.
В реляционных моделях имеются следующие типы объектов:
В этой модели объекты и взаимосвязи между ними представлены при помощи таблиц. Одна таблица представляет один объект и состоит из столбцов и строк. Каждая строка таблицы представляет собой одну запись, а каждый столбец — одно поле записей.
основной объект реляционной БД, который используется для хранения данных
Связь между таблицами осуществляется путем совладения значений одного или нескольких полей. Каждая строка таблицы в реляционных базах данных уникальна. Уникальность строк обеспечивают ключи (одно или несколько полей таблицы), которые сохраняются в упорядоченном виде. Это обеспечивает прямой допуск к записям в процессе поиска. Каждая таблица должна иметь первичный ключ (ключевое поле одно или более). Поля-ключи уникально идентифицируют каждую строку в таблице
Предметную область в реляционных моделях данных представляют в виде соответствующего числа таблиц и базу данных можно рассматривать как набор таблиц. Таблицы находятся между собой в соответствующих отношениях (связях). Представление предметной области в виде системы отношений — самая сложная и ответственная задача, которая относится к области логического проектирования.
нормализация таблиц приводит к значительной фрагментации данных, а при решении задач, как правило, их необходимо объединять.
Создание таблиц БД является первым шагом в разработке СУБД. Таблицы предназначены для хранения информации БД. Создание таблицы состоит из двух этапов: задание структуры таблицы; ввод записей в таблицу.
Создание таблицы в MS Access может быть выполнено
- в режиме Конструктора
- в режиме Таблицы
- на основе шаблона таблицы
В базу данных будет добавлена новая таблица, созданная на основе выбранного шаблона таблицы.
Создание таблицы путем ввода данных не предусматривает описания структуры таблицы. После выбора этого режима (режим Таблицы) открывается пустая таблица, в которую можно ввести данные.
Любое поле в этой таблице можно изменить по желанию пользователя. Имена полей задаются непосредственно в заголовках. При сохранении этой таблицы MS Access проанализирует данные и автоматически присвоит соответствующий тип данных каждому полю, т.е. создаст структуру таблицы. При закрытии режима таблицы Access предложит создать ключевое поле. Если ответить "Да", то будет добавлено еще одно поле типа "Счетчик", которое и будет ключевым. Если ответить "Нет", то ключ можно задать позже, перейдя в режим конструктора.
При выборе режима конструктора появляется окно конструктора
В поле "Имя поля" вводится имя поля таблицы, являющееся егоидентификатором.
Рекомендуется формировать имена полей так, чтобы имя было коротким, не содержащим специальных символов (запятых, пробелов и т.д.) и отражающим смысл поля.
Необходимо различать идентификатор поля в структуре таблицы и заголовок поля в выходном документе. Во втором случае заголовок поля должен в полной мере отражать смысл поля и обычно задается вручную при форматировании выходного документа.
В поле "Тип данных" выбирается один из доступных типов данных:
Поле "Описание" содержит комментарии к создаваемому полю таблицы. Его заполнение не является обязательным.
В нижней части окна, на вкладке "Общие" задаются свойства поля. Если щелкнуть кнопкой мыши по одной из строк таблицы свойств, справа появится подсказка о назначении этого свойства.
Общие свойства поля
Вкладка "Подстановка" служит для организации подсказки при заполнении внешних ключей таблицы и позволяет ограничить набор значений, которые может содержать поле, т.е. можно создать раскрывающийся список допустимых значений. Значения для раскрывающегося списка могут поступать из определенной таблицы или запроса либо список создается специально для этой цели.
Ключи, чаще всего, являются формальными идентификаторами записей в таблицах БД. Поэтому при заполнении внешних ключей у пользователя могут возникнуть затруднения, связанные с определением, какому ключу в базовой таблице соответствует запись в подчиненной таблице. Настройка свойств вкладки "Подстановка" позволяет превратить простое поле для внешнего ключа в поле со списком, содержащим полный список ключей базовой таблицы и соответствующие этим ключам поля – подсказки из базовой таблицы. После выбора в списке записи, в заполняемую таблицу помещается только ключ. Таким образом, пользователю не нужно помнить ключи и их ввод выполняется выбором из списка, а не вводом с клавиатуры.
В дальнейшем поля подстановки наследуются формами, если в качестве источника данных формы выбрана таблица с такими полями.
Упростить настройку "Подстановки" для поля позволяет Мастер подстановок
Первичный ключ состоит из набора значений, которые однозначно определяют запись базовой таблицы
Внешний ключ — это поле, значения которого соответствуют значениям первичного ключа другой связанной таблицы
Каждая таблица в базе данных должна иметь первичный ключ, т.е. уникальное значение для каждой записи в таблице. Ключ может состоять из нескольких полей. Он необходим для формирования первичного индекса таблицы. Первичный индекс ускоряет поиск по ключевому полю (полям) и используется для определения типа связи между таблицами при объединении таблиц. Ключевое поле помечается значком ключа в области выделения строки.
Для задания простого ключа, состоящего из одного поля таблицы, достаточно в режиме конструктора установить курсор в любую позицию этого поля и нажать кнопку "Ключевое поле" на панели инструментов.
Для задания составного ключа, состоящего из нескольких полей таблицы, необходимо выделить эти поля, щелкая мышью по кнопкам слева от соответствующих строк при нажатой клавише Ctrl, а затем нажать кнопку"Ключевое поле". Признаком установки является появление рисунка ключа на кнопках слева от соответствующей строки конструктора.
Определение связей между таблицами в базе данных Access
является графическим образом БД и используется для определения связей между таблицами.
После того, как созданы таблицы БД, можно установить связи между ними, обратившись к схеме данных.
Связь между таблицами устанавливает отношения между совпадающими значениями в ключевых полях, обычно между полями, имеющими одинаковые имена в обеих таблицах. В большинстве случаев с ключевым полем одной таблицы, являющимся уникальным идентификатором каждой записи, связываетсявнешний ключ другой таблицы.
Обязательным условием при установлении связи является совпадение связываемых полей по типу и формату.
Тип отношения в создаваемой Microsoft Access связи зависит от способа определения связываемых полей.
Отношение «один-ко-многим»
Отношение «один-ко-многим» является наиболее часто используемым типом связи между таблицами. В отношении «один-ко-многим» каждой записи в таблице A могут соответствовать несколько записей в таблице B, но запись в таблице B не может иметь более одной соответствующей ей записи в таблице A.
Отношение «один-к-одному»
PПри отношении «один-к-одному» запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот. Отношения этого типа используются не очень часто, поскольку большая часть сведений, связанных таким образом, может быть помещена в одну таблицу. Отношение «один-к-одному» может использоваться для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Отношение «многие-ко-многим»
При отношении «многие-ко-многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, которые являются внешними ключами таблиц A и B. Отношение «многие-ко-многим» по сути дела представляет собой два отношения «один-ко-многим» с третьей таблицей.
|
При построении связи, MS Access называет одну из таблиц главной, а другую – связанной. Часто он сам может принять решение о том, какую из таблиц считать главной (например, если одно из связываемых полей является ключевым или просто имеет уникальный индекс, главной будет таблица, содержащая это поле).Если это не удается, то главной считается таблица, с которой было начато прокладывание связи.
Каскадное обновление и удаление могут быть заданы только в том случае, есливключено обеспечение целостности данных. Если обеспечение целостности не задано, построенная связь никак не будет ограничивать множества допустимых значений связанных полей. В MS Access такие связи играют роль только при построении запросов.
Схема данных является графическим образом БД. Она используется различными объектами Access для определения связей между несколькими таблицами. Например, при создании формы, содержащей данные из нескольких взаимосвязанных таблиц, схема данных обеспечивает автоматический согласованный доступ к полям этих таблиц. Она же обеспечивает целостность взаимосвязанных данных при корректировке таблиц.
Связь между таблицами определяется путем добавления связываемых таблиц в окно "Схема данных" .
При создании связи между таблицами не требуется, чтобы общие поля имели одинаковые имена. Вместо этого поля должны иметь одинаковый тип данных. Однако если поле первичного ключа имеет тип "Счетчик", поле внешнего ключа может иметь тип "Числовой" при условии, что свойство Размер поля обоих полей одинаково.
Например, можно сопоставить поле с типом "Счетчик" и поле с типом "Числовой", если свойство Размер поля обоих полей имеет значение "Длинное целое". Если оба общих поля имеют тип "Числовой", они должны иметь одинаковое значение свойства Размер поля.
Для задания связи между таблицами
В диалоговом окне Добавление таблицы отображаются все таблицы и запросы базы данных. Чтобы просмотреть только таблицы, выберите пункт Таблицы. Чтобы просмотреть только запросы, выберите пункт Запросы. Чтобы просмотреть и таблицы, и запросы, выберите пункт Все.
Откроется диалоговое окно Изменение связей.
Чтобы обеспечить для этой связи целостность данных, установите флажок Обеспечение целостности данных.
Между двумя таблицами будет нарисована линия связи. Если установлен флажок Обеспечение целостности данных, концы линии будут выглядеть утолщенными. Кроме того, если установлен флажок Обеспечение целостности данных, над жирной частью линии с одной стороны связи будет отображаться цифра 1, а с другой стороны — символ бесконечности (∞).
ПРИМЕЧАНИЯ
- Создание связи "один-к-одному" . Оба общих поля (как правило, поля первичного ключа и внешнего ключа) должны иметь уникальный индекс. Это означает, что свойство Индексированное поле должно иметь для этих полей значение Да (Совпадения не допускаются). Если оба поля имеют уникальный индекс, в Access создается связь "один-к-одному".
- Создание связи "один-ко-многим" . Поле на стороне "один" связи (как правило, это первичный ключ) должно иметь уникальный индекс. Это означает, что свойство Индексированное поле этого поля должно иметь значение Да (Совпадения не допускаются). Полю на стороне "многие" не должен соответствовать уникальный индекс. У него может быть индекс, однако он должен допускать совпадения. Это означает, что его свойство Индексированное поле может иметь значение Нет либо Да (Допускаются совпадения). Если у одного поля есть уникальный индекс, а у другого — нет, приложение Access создает связь "один-ко-многим".
- Если перетащить поле, не являющееся ключевым и не имеющее уникального индекса, на другое поле, которое также не является ключевым и не имеет уникального индекса, создается неопределенное отношение. В запросах, содержащих таблицы с неопределенным отношением, Microsoft Access по умолчанию отображает линию объединения между таблицами, но условия целостности данных при этом не накладываются и нет гарантии уникальности записей в любой из таблиц.
Обратите внимание, что скрытые таблицы (таблицы, для которых установлен флажок Скрытый в диалоговом окне Свойства) и их связи не будут отображены, если не установлен флажок Показывать скрытые объекты в диалоговом окнеПараметры переходов.
Когда открыто окно "Схема данных", на ленте доступны указанные ниже команды.
На вкладке Конструктор в группе Сервис
На вкладке Конструктор в группе Отношения
Данные в таблицу можно ввести непосредственно в режиме ее открытия или через специально созданную форму. Второй способ предпочтителен, поскольку формы обеспечивают более удобный интерфейс и возможности контроля ввода.
Вводимые данные должны соответствовать типу данных и формату, определенным в структуре для каждого поля таблицы. При несоответствии Access выдает предупреждение и не разрешает продолжать ввод. Следует либо ввести данные требуемого формата, либо отменить ввод.
Запрос (query) есть механизм выбора и представления информации из базы данных. Запрос направляется пользователем или программой в СУБД для поиска отдельных записей в базе данных. Вопрос, сформированный по отношению к базе данных, и есть запрос.
Запросы отличаются от фильтров следующими свойствами:
Механизм запросов реализует одно из основных назначений базы данных - быстрый поиск информации и получение ответов на поставленные вопросы
С помощью запроса можно выполнить следующие виды обработки данных:
Последовательное выполнение ряда запросов позволяет решать достаточно сложные задачи, не прибегая к программированию.
В MS Access можно выделить следующие виды запросов
В MS Access запрос может быть создан
Окно конструктора запросов разделено на две панели. Верхняя панель содержитсхему данных запроса, которая включает выбранные для данного запроса таблицы. Таблицы представлены списками полей. Нижняя панель являетсябланком запроса по образцу, который нужно заполнить.
В окне запроса отображаются выбранные таблицы и связи между ними, имеющиеся в схеме данных базы. Связи для объединения, которые не может установить MS Access автоматически, может создать пользователь, перетащив задействованные в связи поля из одного списка полей в другой.
Бланк запроса по образцу представлен в виде таблицы в нижней панели окна запроса. До формирования запроса эта таблица пуста.
Каждый столбец бланка относится к одному полю, с которым нужно работать в запросе. Поля могут использоваться для включения их в результат выполнения запроса, для задания сортировки по ним, а также для задания условий отбора записей.
При заполнении бланка запроса необходимо:
Иногда требуется включить в запрос все поля исходной таблицы. Для этого необходимо сделать двойной щелчок мышью по строке заголовка соответствующего списка полей, выделяя таким образом сразу все поля, и перенести их одновременно в бланк запроса. При этом каждое поле будет помещено в отдельный столбец.
Можно воспользоваться другим способом. В начале каждого списка полей, приведенных в верхней половине окна, находится символ *, который означает «все поля». Для того чтобы включить в запрос все поля таблицы, можно просто перенести * в бланк запроса. В этом случае имя поля в бланке запроса будет содержать имя таблицы, за которым следует точка, а затем — символ * (например, Заказы.*), что означает выбор всех полей исходной таблицы. У метода переноса * есть одно существенное достоинство. Если в структуре исходной таблицы производятся какие-либо изменения, например, добавляется новое поле, запрос будет автоматически изменен (при использовании первого способа запрос выбирает только те поля, которые были перенесены в бланк запроса. Однако если необходимо определить условие отбора, придется дополнительно добавить отдельные поля в бланк запроса, а чтобы они дважды не включались в выборку снять для соответствующих полей флажки Вывод на экран.
При выполнении запроса в качестве заголовков столбца динамической таблицы используются имена выбранных полей. Для переименования поля в результирующей динамической таблице необходимо установить текстовый курсор перед именем поля в строке Поле бланка запроса и ввести новое имя с двоеточием. В результате получится следующая конструкция:
Обычно Microsoft Access выводит записи в том порядке, в каком они выбираются из базы данных. Можно изменить последовательность вывода данных, определив ее порядок в строке Сортировка. При сортировке по нескольким полям порядок обработки полей определяется их положением в бланке запроса: сначала сортируются значения в крайнем левом поле и далее слева направо.
По умолчанию Microsoft Access выводит все поля, включённые в бланк запроса. Если поле используется только для определения условия выбора данных, для него необходимо снять флажок в строке Вывод на экран, щелкнув мышью в соответствующей ячейке.
Выражение, которое указывает, какие записи необходимо включить в динамическую таблицу при выполнении запроса вводится в строку Условие отбора для поля, по которому это условие необходимо проверить. Для задания условий отбора можно использовать операторы меньше (<), меньше или равно (<=), больше (>), больше или равно (>=), не равно (<>), равно (=), Like (выбор по маске), Between (между), In (в интервале), And (и), Or (или) и другие, а также имена объектов, константы и функции.
Завершение ввода условия выполняется нажатием клавиши Enter или просто переходом к другой ячейке бланка запроса с помощью клавиш управления курсором или мыши. Мicrosoft Access проводит синтаксический анализ заданного выражения.
Например, если было введено значение текстового поля то это выражение будет представлено в кавычках. Если выражение не содержит никакого оператора, Microsoft Access будет исходить из того, что подразумевается оператор = или Like.
Допускается использование нескольких условий отбора, которые можно задать как для разных полей, так и для одного поля.
Условия отбора, заданные в одной строке, связываются с помощью логической операции "И", заданные в разных строках — с помощью логической операции "ИЛИ". Эти операции могут быть заданы явно в выражении условия отбора с помощью операторов AND и OR соответственно.
Для создания сложных условий выбора данных используются логические операторы And и Or. Если условия отбора связаны оператором And, запись выбирается только в случае выполнения всех условий. Если же условия отбора связаны оператором Or, запись выбирается при выполнении хотя бы одного из всех условий. При определении нескольких условий отбора, связанных оператором And, для различных полей необходимо просто задать условие в строке Условие отбора для каждого из полей, образующих критерий выбора данных. Если же при определении нескольких условий поместить их в различные строки — строку Условие отбора и строку или — Microsoft Acces будет использовать Or-связь. В результате условия, расположенные в одной строке, связываются оператором And, в разных строках — оператором Or.
Т.о., условием отбора является выражение, которое состоит из операторов сравнения и операндов, используемых для сравнения. В качестве операндов выражения могут использоваться: литералы, константы, идентификаторы (ссылки).
Литералом является значение, воспринимаемое буквально, а не как значение переменной или результат вычисления, например, число, строка, дата.
Константами являются не изменяющиеся значения, например, True, False, Да, Нет, Null (константы автоматически определяются в Access).
Идентификатор представляет собой ссылку на значение поля, элемент управления или свойство. Идентификаторами могут быть имена полей, таблиц, запросов, форм, отчетов и т.д. Они должны заключаться в квадратные скобки. Во многих случаях Access производит автоматическую подстановку скобок. Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком.
В выражении условия отбора допускается использование операторов сравнения и логических операторов: =, <, >, <>, Between, In, Like, And, Or, Not, которые определяют операцию над одним или несколькими операндами. Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =.
Текстовые значения в выражении вводятся в кавычках, если они содержат пробелы или знаки препинания. В противном случае кавычки можно не вводить, они будут добавлены автоматически.
Допускается использование операторов шаблона — звездочка * и вопросительный знак ?.
Оператор Between позволяет задать интервал для числового значения.
Between 10 And 100 задает интервал от 10 до 100.
Оператор In позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках.
In ("Математика", "Информатика", "История")
Оператор Like позволяет использовать образцы, использующие символы шаблона, при поиске в текстовых полях.
Like "Иванов*"
Знак | Описание | Пример |
---|---|---|
* | Соответствует любому количеству знаков. Может использоваться в качестве первого или последнего знака текстовой строки | wh* — поиск слов what, white и why. |
? | Соответствует любому текстовому знаку | B?ll — поиск слов Ball, Bell и Bill. |
[ ] | Соответствует любому одному знаку из заключенных в скобки. | B[ae]ll — поиск слов Ball и Bell, но не Bill. |
! | Соответствует любому одному знаку, кроме заключенных в скобки. | b[!ae]ll — поиск слов bill и bull, но не bell или ball. |
- | Соответствует любому знаку из диапазона. Необходимо указывать этот диапазон по возрастанию (от A до Z, но не от Z до A). | b[a-c]d — поиск слов bad, bbd и bcd. |
Сформировать условие отбора можно с помощью построителя выражений. Перейти в окно Построитель выражений можно, нажав кнопку Построить на панели инструментов, или выбрав команду Построить в контекстно-зависимом меню. Курсор мыши должен быть установлен в ячейке ввода условия отбора.
Запрос на выборку можно использовать не только для того, чтобы выбирать из таблиц базы данных содержащуюся в них информацию, но также чтобыпроизводить вычисления и отображать результаты вычислений в динамической таблице. Следует иметь в виду, что результаты вычислений не сохраняются в таблицах базы данных. При выполнении запроса вычисления выполняются всякий раз заново, поэтому результаты всегда отражают текущее состояние базы данных.
Для выполнения вычислений в запросе необходимо в бланке запроса создатьновое вычисляемое поле. Для этого следует в пустую ячейку строки Поле ввести вычисляемое выражение, в котором могут использоваться имена полей таблиц, константы и функции, связанные с помощью арифметических операторов. Для изменения порядка вычислений и группировки данных в выражениях используются круглые скобки, а имена полей таблицы должны быть заключены в квадратные скобки. Если в запросе используется несколько таблиц, во избежание ошибок следует указывать полное имя поля, помещая перед именем поля имя таблицы. В этом случае для разделения имен объектов используется !.
Таким образом, запись полного имени поля таблицы выглядит следующим образом:
Имя вычисляемого поля выводится перед выражением и отделяется от него двоеточием
Запросы на выборку можно также использовать для группировки записей и вычисления итоговых значений с помощью так называемых групповых функций:
Для создания итогового запроса в бланк запроса по команде Групповые операции на панели инструментов добавляется строка Групповая операция, которая позволяет указать, по какому полю должна быть выполнена группировка записей, и какие вычисления итоговых значений по группам данных необходимо провести.
В Access предусмотрена возможность работы с запросами, основанными не только на одной, но и на нескольких таблицах (запросах). Такие запросы называют многотабличными, или реляционными. Выбор данных из нескольких таблиц особенно удобен при создании форм и отчетов.
Между таблицами в бланке запроса отображаются связи, унаследованные из схемы данных. Но даже если связи не были созданы, то при добавлении в запрос двух таблиц может быть автоматически установлено их объединение. Для этого они должны иметь одноименные поля с одинаковым или совместимыми типом данных, а так же одно из полей должно быть ключевым. В это случае «1:∞» отображаться не будут, не включена проверка целостности данных. Автоматическая установка объединения таблиц в запросах работает при включенном параметре Разрешить объединение в секции Конструктор запросов раздела Конструкторы объектов диалогового окна Параметры Access. По умолчанию этот параметр включен.
Объединение можно установить «вручную», перетащив поле из одной таблицы в другую. Объединяемые поля должны иметь совместимые типы данных. ПолеMEMO, Поле объекта OLE и Вложение объединению не подлежат.
При внутреннем объединении (созданном через схему данных) в результирующий динамический набор (временная таблица, получаемая после выполнения запроса) записи из связанных таблиц добавляются только тогда, когда значения связанных полей совпадают. При внешнем объединении (создаваемом вручную непосредственно в запросе) записи из одной таблицы включаются в динамический набор, даже если в другой таблице нет соответствующих им записей.
Возможно установить левые и правые внешние объединения с помощью диалогового окна Параметры объединения, вызываемого из контекстного меню связи.
Левое внешнее объединение – это объединение, при котором в динамический набор включаются все записи первой таблицы независимо от того, есть ли соответствующие записи во второй таблице.
Правое внешнее объединение – это объединение, при котором в динамический набор включаются все записи второй таблицы.
В параметрическом запросе указывается критерий, который может изменяться по заказу пользователя. Такой запрос выгодно применять как основу для форм и отчетов. Например, в отчете появляется приглашение ввести месяц, за который он составлен. Условие отбора записей задается непосредственно при вызове запроса. При этом для внесения изменений не требуется открывать запрос в окне Конструктора (строка «Условие отбора»).
При создании параметрического запроса прежде всего формируется обычный запрос на выборку. В ячейку строки условие отбора для заданного поля вводится необходимый оператор и имя параметра, заключенное в квадратные скобки. Это имя выводится в диалоговом окне при выполнении запроса, поэтому в качестве имени параметра удобно использовать какую-либо содержательную фразу или приглашение на ввод данных. В одном запросе можно установить несколько параметров, однако каждый параметр должен иметь уникально содержательное имя.
Дополнительно, выполнив команду Запрос / Параметры, в диалоговом окне Параметры запроса можно перечислить имена всех параметров, используемых в запросе, и для каждого параметра определить тип данных.
Следует иметь в виду, что текст, введенный в качестве имени параметра в бланке запрос должен в точности соответствовать тексту, введенному в диалоговое окно Параметры запроса при определении типа данных параметров. В противном случае Microsoft Access воспринимает их как два разных параметра. При удалении параметра из бланка запроса необходимо удалить его и из диалогового окна Параметры запроса.
Перекрестные запросы специально предназначены для представления данных в удобном для анализа виде и проведения расчетов. Здесь можно подсчитать сумму, находить максимальные, минимальные и средние значения, число значений, др. Результаты группируются в виде таблицы по двум наборам данных (созданным из полей таблицы). Один из наборов задает заголовки столбцов, а другой – заголовки строк таблицы запроса.
Перекрестный запрос позволяет представить данные в виде таблицы, в которой отображаются результаты вычислений (сумма, количество записей, среднее значение и т.п.), выполненных по данным из какого-либо поля таблицы.Результаты вычислений группируются по двум наборам данных, один из которых располагается в левом столбце таблицы, выступая в качествезаголовков строк, а второй — в верхней строке, образуя заголовки столбцов. Таким образом, при создании перекрестного запроса главная задача — определить роль и местоположение каждого поля таблицы.
Пои создании перекрестного запроса в режиме конструктора необходимо указать поля, значения которых будут заголовками столбцов и строк, а также поле, значения которого следует использовать в вычислениях. Для этого по команде Запрос / Перекрестный в бланк запроса добавляются строки Групповая операция и Перекрестная таблица. Строка Перекрестная таблицаиспользуется для определения роли поля в перекрестном запросе (Заголовки строк, Заголовки столбцов, Значение). Строка Групповая операция позволяет указать, какие именно вычисления необходимо произвести в перекрестном запросе.В то время как запросы на выборку извлекают и отображают данные в динамической таблице, активные запросы (запросы на изменение) выполняют определенные действия над извлеченными данными.
Перед созданием и выполнением запроса на изменение нужно сначала сформировать обычный запрос на выборку, чтобы выбрать необходимые записи, выполнить этот запрос и убедиться в правильности отбора записей. Только после этого запрос на выборку следует преобразовать в любой тип запроса на изменение (запрос на удаление, добавление, обновление или на создание таблицы) и выполнить его.
Действия запросов на изменение необратимы!
Формы в Microsoft Access создают для того, чтобы облегчить ввод и редактирование данных, обеспечить их вывод в удобном для пользователя представлении. С помощью подобных объектов можно делать доступной только часть данных, автоматически выбирать информацию из связанных таблиц, вычислять значения выражений и т. д.
В формы можно помещать командные кнопки для открытия других форм, выполнения запросов или команд меню, фильтрации выводимых на экран данных, организации вывода сообщений или печати информации (в частности, можно установить разные наборы опций для вывода формы на экран и на печать). Таким образом, формы позволяют управлять ходом выполнения приложения и являются основным средством организации интерфейса пользователя в Microsoft Access.
При создании формы следует указать имя таблицы или запрос, являющегося источником сведений и выбрать способ создания формы (помимо режима конструктора можно создать форму с помощью мастера, создать форму-диаграмму для повышения наглядности числовых данных или сводную таблицу типа сводной таблицы Microsoft Excel).
С помощью мастера форм можно создавать формы на основе одной или нескольких таблиц и/или запросов, а затем совершенствовать их в режиме конструктора. Мастер форм разбивает процесс создания формы на несколько этапов, на каждом из которых требуется установить определенные параметры для указания доступных полей, связей и внешнего вида формы.
Автоформы представляют собой разные варианты представления информации из исходной таблицы.
Разработку структуры, изменение внешнего вида формы, добавление и удаление элементов управления можно производить вручную в режиме конструктора.
Переключение между режимами осуществляется соответствующими командами меню.
Обязательным разделом, определяющим основную часть формы, являетсяОбласть данных, в которой размещаются сведения, выбираемые для вывода из базовой таблицы или запроса. При печати многостраничной формы этот раздел отражается на каждой странице.
Форма также может содержать разделы Верхний/Нижний колонтитулы, содержимое которых отображается в верхней/нижней части каждой страницы при предварительном просмотре и выводе на печать.
Разделы Заголовок/Примечание формы служат для размещения информации,не требующей изменений при переходе от записи к записи. При просмотре формы раздел Заголовок формы отражается в верхней части окна, при печати —только на первой странице. Раздел Примечание формы при просмотре отражается в нижней части окна, при печати — только на последней странице.
Объекты, помещаемые в форму (например, поля, текст, графика), называютсяэлементами управления. Они делятся на
Присоединенные элементы управления привязываются к конкретному элементу формы или ссылаются на определенное поле источника записей. Для создания в форме связанного элемента управления следует выбрать в списке доступных полей имя поля и переместить его в нужную позицию. При этом автоматически создается элемент, соответствующий типу данных в выбранном поле.
Вычисляемые элементы отображают результаты расчетов, основанных на данных исходной таблицы или запроса.
Работа по созданию несвязанных и вычисляемых элементов в режиме конструктора форм происходит, в основном, при помощи панели элементов управления.
Выбрав нужный элемент на панели, следует поместить указатель мыши в нужной области формы (он превратится в значок выбранного элемента) и щелкнуть левой кнопкой.
Составная многотабличная форма создается для работы с несколькими взаимосвязанными таблицами. Она может включать основную часть и одну или несколько подчиненных вложенных форм, т.е. быть составной. Подчиненная форма может быть построена на основе как подчиненной, так и главной таблицы.
Многотабличная форма может не иметь включенных форм. В этом случае в форму кроме полей таблицы, на основе которой она строится, добавляются поля из связанной таблицы, являющейся главной относительно основной таблицы формы.
Многотабличная форма может быть создана в режиме Конструктора ил с помощьюМастера форм. Последний упрощает процесс создания формы, так как автоматически выполняет большинство требуемых операций. Мастер форм предоставляет возможность выбрать включаемые в форму поля из нескольких взаимосвязанных таблиц/запросов.
При этом используются различные способы построения многотабличной формы:
с помощью Мастера можно создать составную форму, включающую одну или несколько подчиненных форм стандартного вида с выбранными полями. При этом подчиненная форма строится для каждой подчиненной таблицы и отображает данные из всех записей этой таблицы, которые связаны с записью главной таблицы, отображаемой в основной части формы, в табличном или ленточном виде;
Мастер форм позволяет создать связанные формы, которые не включаются непосредственно в форму. При этом вместо подчиненной формы включается только кнопка, представляющая связанную форму, с помощью которой ее можно вызвать;
Составная многотабличная форма, построенная Мастером может не включать подчиненных и связанных форм. Такая форма создается, если необходимо отображать записи в подчиненной таблице, дополненные полями из одной или нескольких главных таблиц. Источником данных для записи, выводимых в форме, является запись подчиненной таблицы. Форма отображает поля из записи подчиненной таблицы и поля из единственной связанной с ней главной таблицы.
При работе с базой данных для просмотра, форматирования и обобщения данных обычно используются отчеты. Например, можно создать отчет в виде списка с номерами телефонов всех контактов или сводный отчет с итогами продаж компании в разных регионах за разные периоды.
Отчет позволяет дополнить извлеченную из базы данных информацию результатами анализа и вычислений, использовать различные средства визуального оформления.
С помощью команды контекстно-зависимого меню, вызываемого правой кнопкой мыши, спроектированную форму (таблицу или запрос) можно сохранить как отчет для дальнейшего использования. Кроме того, отчет можно спроектировать с помощью мастера или «вручную» с помощью конструктора отчетов, используя предлагаемый им набор инструментов, определив вычисляемые поля и внеся указания о порядке сортировки и группировки данных. Приемы проектирования отчета в режиме конструктора идентичны приемам, используемым при создании формы.
В MS Access отчет может быть создан посредством следующих инструментов:
Перед началом конструирования отчета пользователь должен произвести подготовительную работу, в результате которой определяется требуемый макет отчета.
В процессе конструирования формируется состав и содержание разделов отчета, а также размещение в нем значений, выводимых из полей таблиц базы данных. Кроме того, оформляются заголовки, подписи реквизитов отчета, размещаются вычисляемые реквизиты.
Средства конструирования отчета позволяют группировать данные по нескольким уровням. Для каждого уровня могут производиться вычисления итогов, определяться заголовки и примечания по каждой группировке. При формировании отчета могут производиться разнообразные вычисления.
При необходимости вывода в отчете данных из многих таблиц в качестве основы для отчета может быть использован многотабличный запрос. На запрос могут быть возложены наиболее сложные виды выборки и предварительной обработки данных.
Достаточно часто сначала используется мастер отчетов, который позволяет быстро создать заготовку отчета, а затем заготовка дорабатывается в режиме конструктора.
При создании отчета в режиме конструктора в окне отображаются пустые разделы отчета.
При разработке отчета разделы окна нужно заполнить элементами в соответствии с необходимым пользователю макетом отчета. В заголовок помещается текст из шапки макета отчета. В колонтитул обычно помещают заголовки, даты и номера страниц. При определении содержания этих разделов следует исходить из требований к оформлению отдельных страниц отчета. В области данных размещаются поля таблиц базы данных.
Для каждого элемента, а также раздела и отчета в целом могут быть уточнены свойства. Технология размещения элементов и определения их свойств практически такая же, как и в конструкторе форм.
В режиме Конструктора
В режиме Предварительного просмотра
Язык макросов является языком программирования, который позволяет реализовать задачи пользователя, выполняя необходимые действия над объектами MS Access и их элементами.
программа, состоящая из последовательности макрокоманд.
Макрокоманда — это инструкция, ориентированная на выполнение определенного действия.
Например, макрокомандой можно открыть форму, отчет, напечатать отчет, запустить на выполнение запрос, применить фильтр, присвоить значение, создать свое меню для формы или отчета. Макрокоманда ЗадатьКомандуМеню позволяет выполнить любую заданную команду меню. Имеющийся в Access набор макрокоманд реализует практически любые действия, которые необходимы для решения задачи.
Язык макросов обеспечивает возможность выполнения большинства задач, не прибегая к программированию на Visual Basic. Макросы, являясь надстройкой над Visual Basic, обеспечивают пользователя средствами решения задач, не требующими знания детального программирования. Язык макросов является языком более высокого уровня, чем Visual Basic.
Макросы определяют набор методов обработки объектов. В Access имеются средства, обеспечивающие взаимодействие макросов с объектами на основе событий. События наступают при выполнении определенных действий, к которым относятся прежде всего действия пользователя. Последнее обстоятельство позволяет управлять выполнением программы извне. Пользователь, выполняя различные действия в формах, инициирует выполнение макросов, автоматизирующих решение связанных с действиями пользователя подзадач. Такой подход существенно отличает программирование на языке макросов от программирования в традиционном понимании, при котором только программа управляет процессом.
Заметим, что наличие аппарата запуска программ через события, вызываемые действиями пользователя, не исключает возможности написания программ на языке макросов, которые без вмешательства пользователя могут решать нужные задачи. В этом случае задача решается рядом взаимосвязанных макросов.
Для организации ветвлений в программе в макросе определяются условия выполнения макрокоманд. Пользователь запускает главную программу на выполнение и далее все управление ее выполнением осуществляется изнутри. Программа сама открывает необходимые объекты, выбирает и обрабатывает данные, вызывает другие макросы, следуя алгоритму, приводящему к решению задачи. При необходимости программа инициирует диалог с пользователем.
Создание макросов осуществляется в диалоговом режиме и сводится к записи в окне макроса последовательности макрокоманд, для которых задаются параметры. Каждому макросу присваивается имя. При выполнении макроса макрокоманды выполняются последовательно в порядке их расположения. При этом используются объекты или данные, указанные в аргументах макрокоманд. Имеется возможность определить условия выполнения макрокоманды.
Выполнение макросов инициируется простой операцией и может сводиться к его открытию, как это делается и для других объектов базы данных. Помимо этого, Access предоставляет возможность автоматически инициировать выполнение макроса при наступлении некоторого события. Для связи макроса с событием достаточно в бланке свойств объекта или его элемента управления внести в строку этого события имя макроса. События, с которыми можно связать макрос, определяются в свойствах форм и отчетов и их элементах управления. Создание макроса начинается в окне базы данных, где надо выбрать закладку Макросы (Macros) и нажать кнопку Создать (New). После этого открывается окно макроса.
Макрокоманды, составляющие макрос, вводятся в столбец Макрокоманда. Для ввода макрокоманды можно нажать кнопку раскрытия списка макрокоманд в этом столбце и выбрать нужную. Можно ввести имя макрокоманды с клавиатуры. В нижней части окна выводятся аргументы макрокоманды. Значения аргументов задаются путем выбора их из списка, открывающегося в строке аргумента. В поле справа от строк аргументов выводится сообщение с пояснениями для выбранного аргумента.
В строки столбца Примечание вводят необязательный комментарий, описывающий результат выполнения макрокоманды. Каждая новая макрокоманда макроса добавляется в следующей строке бланка. Порядок размещения макрокоманд в бланке определяет последовательность их выполнения.
После ввода всех макрокоманд в макрос его надо сохранить, воспользовавшись командой меню Файл/Сохранить или кнопкой панели инструментов макроса.
Для выполнения макроса можно нажать кнопку панели инструментов Запуск. Если макрос уже закрыт, то для его выполнения надо в окне базы данных выбрать макрос и нажать кнопку Запуск в этом окне. Таким образом, по инициативе пользователя задача может решаться многократно.
Для просмотра и редактирования существующего макроса надо выбрать его в окне базы данных и нажать кнопку Конструктор.
Макросы содержат наборы команд, которые доступны в языке программирования Visual Basic для приложений (VBA). Если потребуется добавить дополнительные возможности, отсутствующие в макросах, можно легко преобразовать изолированный макрос в код VBA и добавить в него все необходимые функции. Следует помнить, что код VBA не выполняется в браузере, а будучи добавленным в веб-базу данных, будет выполняться лишь при ее открытии в приложении Access.
ПРИМЕЧАНИЕ.
Внедренные макросы невозможно преобразовать в код VBA.
Чтобы преобразовать макрос в код VBA, выполните указанные ниже действия.
Приложение Access подтвердит преобразование макроса и откроет редактор Visual Basic. Чтобы просмотреть модуль и внести в него изменения, дважды щелкните преобразованный макрос в области проекта.