
Лабораторная работа 2: Создание и использование форм
Цель работы: создание форм и их использование при редактировании данных.
Основные сведения
Формы обеспечивают наиболее гибкий способ просмотра, добавления, редактирования и удаления данных. Форма позволяет отображать одновременно все поля одной или нескольких записей. Режим таблицы также позволяет просматривать несколько записей сразу, но в нем не всегда можно отображать все поля одновременно, особенно если таблица большая.
Формы ввода данных помогают быстро, легко и без ошибок поместить информацию в таблицу БД. Использование форм ввода данных - самый распространенный способ внесения данных в таблицу БД, так как формы можно сделать похожими на обычные бумажные документы, что делает ввод интуитивно понятным.
В форме каждое поле можно разместить в точно заданном месте, выбрать для него цвет или заливку и добавить элементы управления текстом для эффективного ввода данных. В форму можно помещать вычисляемые поля, добавлять расширенные правила проверки корректности ввода и элементы управления. Линии, рамки, цвета и растровые изображения улучшают внешний вид данных, облегчают восприятие формы и повышают продуктивность работы. OLE-объекты можно увидеть только в форме или отчете.
Источником данных для формы может служить таблица или запрос. Access предоставляет пользователю средства автоматизации построения форм, а именно, автоформы и программу-мастера форм. При этом для построения автоформы необходимо указать лишь источник данных (таблицу), а все остальное будет выполнено автоматически, причем на форму будут помещены все поля источника данных. Мастер форм построит форму в диалоге с пользователем, который сможет выбрать несколько источников данных, указать поля для отображения на форме, выбрать стиль оформления и вид представления формы.
Форма может находиться в двух режимах: режиме формы и режиме конструктора. В режиме конструктора форма разрабатывается или редактируется. Можно создавать форму с помощью конструктора или редактировать ее после работы программ-мастеров. Практика показывает, что при помощи мастера нельзя создать форму, которая бы вполне удовлетворяла пользователя. Это в первую очередь связано с размерами и размещением элементов управления, а также надписями, форматами отображения данных и масками ввода. Для редактирования существующей формы нужно выбрать ее в окне базы данных и нажать кнопку Конструктор.
Режим формы является рабочим режимом. В этом режиме выполняется работа с данными из таблиц, которые на форме выводятся посредством таких элементов управления, как поле, список, поле со списком, флажок.
Задание 1. Создание формы Сотрудники
В контейнере БД Приложение перейти на карточку Формы.
Щелкнуть кнопку Создать.
В диалоговом окне Новая форма выделить Мастер форм и выбрать из списка таблицу Сотрудники. Щелкнуть OK.
В диалоговом окне Создание форм из списка Доступные поля выбрать щелчком по кнопке >> все поля. Из списка выбранных полей щелчком по кнопке < исключить поле Подчиняется.
Нажать кнопку Далее.
В следующих 2-х диалоговых окнах Создание форм выбрать внешний вид формы в один столбец и стиль. После каждого выбора щелкать кнопку Далее.
Задать имя формы Сотрудники и щелкнуть кнопку Готово.
С помощью кнопок навигации проверить работоспособность формы. Ввести свою фамилию и данные.
Перейти в режим Конструктор и отредактировать поля формы – изменить их размеры, чтобы данные были видны полностью.
С помощью Панели элементов управления создать вычисляемое поле Возраст. Щелкнуть на панели элемент управления Поле и установить его ниже всех полей в левой части формы. Access автоматически создает 2 элемента управления: Надпись и Поле. Переместить Надпись выше Поля, установить в ней курсор и вместо названия по умолчанию написать полужирным шрифтом Возраст. Затем выделить Поле, щелкнуть кнопку Свойства, выделить карточку Данные и в строке Данные ввести с помощью построителя выражений = Year(Date()) – Year(ДатаРожд). Сохранить. Перейти в режим Форма и проверить работу.
Руководствуясь теми же действиями, создать поле справа внизу с фамилией и инициалами. Шрифт Arial 11, красный. При создании инициалов использовать текстовую функцию Left.
Создать поле со списком Поиск сотрудника. Проследить, чтобы кнопка Мастера (палочка с точками) была включена. Поместить на форму элемент управления Поле со списком. Включается мастер создания полей со списком. В диалоговом окне Создание полей со списком выбрать Поиск записи в форме …(третий вариант). Нажать кнопку Далее. В следующем диалоговом окне выбрать поля СотрудникID, Фамилия, Имя. Нажать кнопку Далее. В следующем окне задать ширину столбцов. Нажать кнопку Далее. Ввести подпись Поиск сотрудника. Нажать кнопку Готово. Переместить надпись выше поля. Проверить работу формы.
Для создания поля Подчиняется необходимо сначала создать запрос с именем Для формы Сотрудники. Таблица Сотрудники. Поле СотрудникID и вычисляемое поле ФИО с выражением: Сотрудники!Фамилия & ", " & Сотрудники!Имя. Создать поле со списком Подчиняется. Проследить, чтобы кнопка Мастера была включена. Поместить на форму элемент управления Поле со списком. Включается мастер создания полей со списком. В диалоговом окне Создание полей со списком выбрать Объект "поле со списком" будет использовать …(первый вариант). Нажать кнопку Далее. В следующем диалоговом окне выбрать Запросы из области Показать и выделить запрос Для формы Сотрудники. Нажать кнопку Далее. В следующем диалоговом окне выбрать все доступные поля и нажать кнопку Далее. В следующем диалоговом окне поле СотрудникID уменьшить до нуля, а поле ФИО – увеличить, чтобы все данные были видны. Нажать кнопку Далее. В следующем диалоговом окне выбрать из доступных полей ФИО и нажать кнопку Далее. В следующем диалоговом окне оставить нажатым переключатель Запомнить значение и нажать кнопку Далее. В следующем диалоговом окне ввести подпись Подчиняется и нажать кнопку Готово.
Выделить на форме созданное поле со списком и щелкнуть на панели инструментов кнопку Свойства (слева от построителя выражений). В диалоговом окне Поле со списком выделить карточку Все. В первой строке карточки Имя ввести Подчиняется. Во второй строке щелчком мыши активизировать список и выбрать поле Подчиняется. В строке Источник строк щелчком мыши активизировать список и выделить Для формы Сотрудники. В строку Число столбцов ввести 2. в строку Ширина столбцов ввести 0; 8. Переместить надпись выше поля. Сохранить. Проверить работу формы.
Разработка формы Прием товаров
В качестве источника данных используем таблицу Товары. При создании формы будут использоваться:
элемент управления Поле со списком для ввода информации о поставщике, сотруднике и категории товара. Это позволит избежать ошибок при вводе с клавиатуры и ускорить ввод информации;
маски ввода дат. Маска гарантирует правильность ввода и дает возможность не вводить разделители между днями, месяцами и годами;
событийные процедуры для автоматического заполнения даты приема товара и вычисления розничной цены по известной наценке.
Задание 2
Создать форму Прием товаров с помощью мастера.
Выбрать все поля таблицы, кроме поля ТоварID и ВесИздел. В поле ТоварID типа Счетчик при добавлении данных значение изменяется автоматически и не несет полезной информации.
Выбрать внешний вид формы ленточный.
В окне конструктора поместить на форму область заголовка и примечания формы, выполнив команду Вид|заголовок/примечание формы.
Поля и надписи Поставщик, Сотрудник, ДатаПоступл перенести в область заголовка формы, воспользовавшись выделением и командами Вырезать и Вставить.
Преобразовать перенесенные поля Поставщик, Сотрудник, а также поле Категория в поля со списком, выполнив команду Формат|Преобразовать элемент в …. Поля внешних ключей таблицы Товары содержат коды соответствующих записей из таблиц Поставщики, Сотрудники и Типы товаров. Пользоваться ими в форме неудобно, так как нужно помнить все эти коды при вводе новых данных, поэтому они заменены полями со списком, которые будут содержать текстовую информацию из соответствующих таблиц (например, Название из таблицы Поставщики). При выборе элемента списка в таблицу Товары в соответствующее поле будет записываться нужный код.
Выделить поле Поставщик в области заголовка формы.
Рассмотрим основные свойства поля со списком (кнопка Свойства на панели инструментов – слева от кнопки построителя выражений). Свойство Данные указывает, какие данные выводятся в элементе управления. В нашем случае выводятся данные из поля Поставщик таблицы Товары, являющейся источником данных рассматриваемой формы.
Свойство Тип источника строк указывает на тип источника строк. Из возможных значений в списке следует выбрать Таблица/запрос.
Значения свойства Источник строк зависит от выбранного значения свойства Тип источника строк, поэтому здесь следует выбрать таблицу Поставщики, содержащую необходимую информацию в полях ПоставщикID и Название.
Свойство Число столбцов указывает на число столбцов списка. Это значение равно 2 – первые два поля ПоставщикID и Название таблицы Поставщики. Значения первого поля необходимы для связи с таблицей Товары, так как при выборе элемента списка именно код поставщика должен записываться в соответствующее поле таблицы Товары.
Свойство Присоединенный столбец определяет, значение какого столбца становится значением элемента управления. Если элемент управления присоединен к полю, то значение столбца, указанного в свойстве Присоединенный столбец, заносится в поле, указанное в значении свойства Данные. Таким образом, при выборе элемента списка в поле Поставщик таблицы Товары будет заноситься требуемое значение из первого столбца списка, то есть значение кода поставщика.
Свойство Ширина столбцов задает ширину каждого столбца. Значения в этом поле отделяются друг от друга точкой с запятой. Поскольку при выборе элемента из списка требуется только имя поставщика (Название), то поле ПоставщикID делается невидимым, то есть ему присваивается нулевое значение. В результате поставщик выбирается по имени, а в таблицу Товары заносится его код, хотя этот столбец и не выводится на экран. Таким образом, строка Ширина столбцов должна иметь вид 0; 10.
Свойство Ограничиться списком может иметь одно из двух значений: Да и Нет. Если это свойство установить в значение Да, то ввести в текстовое поле элемента управления можно будет только одно из значений, имеющихся в списке. Нарушение этого условия приведет к ошибке с появлением соответствующего сообщения. Если значением свойства является Нет (принимается по умолчанию), то ввести в это поле можно любое значение, имеющее тот же тип данных, что и элементы списка. Однако допустить ввод отсутствующих в списке значений нельзя, так как будет иметь место попытка записать в подчиненную таблицу Товары значение, которое отсутствует в главной таблице, что приведет к нарушению условий ссылочной целостности данных.
Свойство Автоподстановка – Да/Нет определяет должен ли выполняться автоматический ввод в текстовое поле значения из списка, совпадающего с символами, вводимыми с клавиатуры.