Ошибки при выполнении запросов на изменение
Перед внесением изменений в БД Access анализирует запрос и изменяемые данные. При обнаружении ошибки он выдает соответствующее сообщение и предоставляет пользователю возможность отменить операцию. Access различает следующие типы ошибок:
1. Ошибки преобразования типа возникают при добавлении данных в существующую таблицу, если тип данных полей-получателей не совпадает с типом данных полей-источников и добавляемые данные не могут быть преобразованы к типу данных полей-получателей.
2. Нарушение уникальности ключа. Такие ошибки возникают при попытке добавления или изменения записи в таблице, в результате чего появляется дубликат первичного ключа или уникального индекса. Access не будет добавлять или изменять такие записи. Поэтому перед выполнением такой операции нужно изменить значения первичного ключа в исходной таблице.
3. Нарушение блокировки возникает при работе с таблицей, к которой имеют доступ другие пользователи в сети. Access не может выполнить операцию обновления записи, если в нее в это же время вносит изменения другой пользователь.
4. Нарушение условий на значение. Если добавляемая или обновляемая запись не удовлетворяет условию на значение для одного из полей или таблицы, то Access не произведет операцию добавления или обновления для этой записи.
Формы
Общие сведения
Формы предназначены для просмотра, ввода, редактирования и управления данными. При использовании формы Access предоставляет пользователю существенно больше возможностей для работы с информацией по сравнению с ее стандартным представлением в режиме таблицы. Удобство применения форм для работы с данными заключается в следующем:
• Формы обычно позволяют отобразить на экране всю запись целиком, причем порядок следования полей может быть изменен, а часть из них вообще не включена в форму.
• В формах кроме редактируемых полей, содержащих данные из таблиц БД, можно размещать и нередактируемые (вычисляемые) поля.
• В формы можно добавлять комментарии, рисунки, графики, изменять их внешний вид, подбирая подходящие шрифты, фон и стиль оформления. Это позволяет в случае необходимости разработать форму, имеющую большое сходство с бумажной формой.
• Формы позволяют существенно упростить, а зачастую полностью автоматизировать ввод новых данных.
• В формах можно размещать различные кнопки (кнопочные формы), нажатие на которые приводит к открытию других форм, выполнению запросов, печати отчетов и т. д.
• Формы могут использоваться в качестве диалоговых окон и содержать собственное меню пользователя.
Для разработки форм в Access существует специальный инструментарий. Прежде чем приступать к описанию процедур создания форм, обсудим несколько общих моментов.
Основным источником данных для формы являются таблицы и запросы. Информация может быть также включена в форму в результате импорта различных объектов либо проведения вычислений. Если через форму осуществляется обновление данных, то они обновляются и в источнике.
Построение формы — итеративный процесс. После создания макета формы нужно просмотреть его, чтобы убедиться в его пригодности. Если необходимо внести изменения, можно вернуться к корректировке макета.
Для создания макета формы нужно в окне БД перейти на вкладку Формы и нажать клавишу Создать. После выбора источника данных для формы, а также способа ее создания, при переходе к следующему этапу автоматически обновляются панели инструментов. Появляется панель инструментов Конструктор форм.
Создание, корректировка и просмотр формы осуществляется в различных режимах:
• в режиме конструктора форма создается и корректируется;
• в режиме формы или режиме таблицы форма используется для работы с данными;
• в режиме предварительного просмотра форма просматривается перед печатью.
Все эти режимы выбираются с помощью кнопки Вид панели инструментов Конструктор форм или через меню Вид.
Структура формы
Форма состоит из нескольких разделов (см. рис. 5.1), причем обязательным является только один из них — область данных. Кроме этого раздела в форме могут присутствовать следующие разделы: заголовок и примечание формы, а также верхний и нижний колонтитулы. Информация в них вводится разработчиком формы. Эти разделы имеют следующие назначения:
Рис. 5.1. Структура формы
Заголовок формы может содержать название формы, инструкции по работе с ней, а также другую информацию (текущую дату, время и т.д.). В режиме формы он находится в верхней части экрана, а при печати — в верхней части первой страницы. В режиме таблицы этот раздел не отображается.
Верхний колонтитул может содержать заголовки и любые другие сведения, помещаемые в верхней части каждой страницы формы при печати.
Нижний колонтитул также используется при печати и может содержать номер страницы, дату и другую информацию.
Примечание формы может содержать инструкции по использованию формы, кнопки и свободные элементы управления для ввода или вывода данных. В режиме формы область примечаний находится в нижней части экрана, а при печати печатается на последней странице.
При создании формы с помощью конструктора она содержит лишь один раздел — область данных. Остальные разделы можно добавить, используя соответствующие пункты контекстного меню формы или меню Вид.
Форма может включать подчиненные формы, внутри которых могут отображаться три раздела: заголовок, область данных и примечание.
Как и все объекты БД, форма и ее разделы имеют свойства. В свойствах задаются режимы работы с формой, вид формы, источник данных, использование фильтра. Свойства разделов используются при выводе их на экран или печать.
Виды форм
Различные виды форм создаются обычно мастером форм или пользователем с помощью конструктора. Кроме того, существуют мастер диаграмм и мастер сводная таблица.
Возможно создание трех видов автоформ: в один столбец, табличной и ленточной формы. При создании автоформы все поля таблицы или запроса выводятся в форму автоматически.
Форма в один столбец отображает поля, расположенные в один столбец. На экране отображается одна запись.
Табличная форма отображает данные в виде нескольких строк и столбцов. Одновременно отображается несколько записей. По внешнему виду и способам перемещения по записям она ничем не отличается от обычной таблицы Access.
Ленточная форма похожа на табличную форму и отличается лишь внешним оформлением.
В отличие от автоформ при использовании мастера форм поля в форму можно выбирать. Мастер может создать кроме вышеперечисленных видов форм составную форму. Она состоит из главной формы и подчиненной. В этих формах отображаются данные из разных таблиц, причем эти таблицы чаще всего связаны отношением «один-ко-многим». Данные главной формы отображаются в один столбец, а подчиненная форма обычно имеет табличный формат.
Диаграмма представляет данные в графическом виде и создается мастером диаграмм с использованием приложения Microsoft Graph.
Форма Сводная таблица создается на основании данных из сводных таблиц Excel.
Пользователь может создавать формы так, как он захочет, и включать в них любые данные. Он может начать с пустой формы (с «нуля») или воспользоваться мастером форм, а затем в режиме конструктора внести в форму любые изменения.
Содержимое формы
Вся информация в форме размещается внутри элементов управления (ЭУ). Это графические объекты, предназначенные для изображения данных, выполнения вычислительных операций, вывода на экран вспомогательной информации, оформительских эффектов (рамок, линий и др.). Характер ЭУ зависит от источника размещаемой в нем информации.
Присоединенные ЭУ связаны с полями источника данных (таблицы или запроса) для формы. Они используются для просмотра, ввода или обновления значений из полей таблиц БД.
Для свободного ЭУ источник данных не определен. ЭУ этого типа обычно используются для вывода на экран надписей, линий и рисунков.
Для вычисляемого ЭУ источником данных служит выражение, в котором могут быть использованы значения из полей источника данных для формы, а также значения, содержащиеся в других ЭУ формы. Эти ЭУ обычно используются для выполнения вычислений и вывода на экран их результатов. Результат вычислений не сохраняется в БД.
Создание формы
При нажатии кнопки Создать во вкладке Формы окна БД появляется диалоговое окно Новая форма. В процессе диалога нужно выбрать один из способов создания формы и таблицу или запрос, которые будут служить источником данных для формы (см. рис. 5.2).
Проще всего создать форму с помощью одной из автоформ. Нужно выбрать из списка источник данных (таблицу/запрос) и одну из предложенных автоформ. Автоформу можно также создать, находясь в окне БД во вкладке Таблицы или Запросы. Для этого нужно выбрать щелчком мыши таблицу/запрос и щелкнуть по кнопке Автоформа на панели инструментов.
Использование Мастера форм
Если выбран Мастер форм и указан источник данных для новой формы (таблица/запрос), то все шаги по ее созданию будут определяться мастером с помощью последовательности диалоговых окон. Сначала рассмотрим случай, когда создаваемая форма основана на одной таблице/запросе. Создание с помощью мастера составной формы, использующей данные из нескольких таблиц/запросов, будет описано позднее (см.п. 5.6.1).
1. В первом окне мастера форм нужно выбрать поля таблицы/запроса, которые будут присутствовать в форме, и переместить их из списка Доступные поля в список Выбранные поля. Для этого используются кнопки >>, >, <, <<. Кнопки >> и << перемещают все поля из одного списка в другой, а > и < — только одно поле. Поле можно также переместить из одного списка в другой с помощью двойного щелчка мыши.
2. В следующих двух окнах диалога задается внешний вид и стиль оформления формы. После выбора варианта в окне мастера появляется соответствующий образец.
3. Последнее диалоговое окно дает возможность изменить заданное по умолчанию имя формы. Закончить диалог можно либо просмотром созданной формы, либо переходом в режим конструктора для внесения в нее изменений.
Рис. 5.2. Создание формы