Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Разработка форм базы данных.

Поиск

 

Общие сведения о формах

Формы разрабатываются для более удобной работы с данными, которые в реляционных СУБД хранятся в таблицах. Рассмотрим основные направления применения форм.

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

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

3. С помощью форм имеется возможность управлять ходом выполнения пользовательского приложения и, таким образом, обеспечить удобную работу пользователя, создав пользовательский интерфейс. Разработка таких форм позволяет автоматизировать работу информационной системы управления, задав последовательность выполнения действий для решения конкретных задач. В таких формах создаются специальные элементы управления (в основном кнопки), с помощью которых можно: открывать другие формы; выполнять запросы или команды меню; фильтровать выводимые на экран данные; устанавливать значения в записях и формах; выводить на экран специальные пользовательские меню; распечатывать отчеты. Имеется возможность спроектировать форму таким образом, чтобы макросы или модули и функции языка программирования Visual Basic for Application (VBA) запускались автоматически в ответ на определенные события.

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

5. Кроме того, хоть в Microsoft Access для печати информации и необходимых документов предусмотрены отчеты, можно также распечатать информацию в форме. Имеется даже возможность определить первый набор операций для вывода формы на экран, а другой - на печать.

5.

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

Формы в Microsoft Access бывают следующих видов.

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

¾ Многостраничная форма – вариант простой формы, выполняется, когда поля из одной записи не помещаются на одну страницу, в этом случае при работе с формой пользователь вынужден использовать вертикальную линию прокрутки, или клавиши PgUp/PgDn, для того чтобы работать с полями в форме. Построение таких форм нежелательно. Пользователю удобнее представлять информацию в формах, которые помещаются на один экран. Для организации таких форм можно использовать, например, элементы управления «корешки вкладок».

¾ Ленточная форма (автоформа ленточная) - используется для просмотра списка записей, это так называемый табличный интерфейс. В этой форме отформатированные записи выводятся на экран одна за другой, то есть в форму выводится информация о многих записях в таблице. Эту форму лучше строить для записей с небольшим количеством полей или использовать в такой форме горизонтальную линию прокрутки.

¾ Табличная форма (автоформа табличная) – вариант табличного интерфейса, при котором в форму выводятся неотформатированные записи.

¾ Сложные формы (формы «один ко многим») - формы создаваемые на основе запроса из двух и более связанных таблиц. В этих формах информация из одной таблицы (связь со стороны «один») выводится в основной (главной) форме, а информация из других таблиц (связь со стороны «многие») выводится в подчиненной форме.

¾ Подчиненная форма - внедряется в основную форму и содержит информацию из другой таблицы или запроса (связь со стороны «многие»). Подчиненная форма должна быть связана с основной таблицей через какое-нибудь поле.

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

¾ Модальная форма – окно диалога, которое остается поверх других окон. Фокус ввода невозможно перевести в другие окна, пока модальная форма не будет закрыта или свернута.

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

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

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

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

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

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

При конструировании формы необходимо учитывать следующее:

¾ информацию, которую вводят в базу данных или вставляют из таблицы базы данных, размещают в области данных;

¾ информацию или элементы управления, которые не меняются от записи к записи, добавляют либо в область заголовка, либо область примечания;

¾ все данные в форме желательно располагать на одном экране, по возможности убрать в форме горизонтальные и вертикальные линии прокрутки;

¾ последовательность выделения (фокуса) элементов в формах при вводе данных по нажатию на клавиши Tab или Enter должна быть удобной для введения данных пользователем.

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

макет – свойства определяют внешний вид формы;

данные – определяют, с какими данными мы работаем в форме;

события – определяют обработку событий в процессе работы пользователя с формой;

другие – некоторые свойства, не входящие в вышеперечисленные категории.

 

4.2. Конструирование форм для ввода данных в таблицы "Кадры", "Клиенты", "Поставщики".

Форма «Кадры» предназначена для ввода в базу данных информации о сотрудниках.

В окне базы данных выбираем объект «Формы», по нажатию кнопки «Создать» появляется окно диалога, в котором отмечаем, что форма будет создана конструктором, и выбираем в качестве источника данных таблицу «Кадры».

Для отображения области заголовка и области примечания то необходимо включить переключатель «заголовок/примечание» в меню «Вид». Затем необходимо проверить наличие на экране панели элементов. Она вызывается через меню Сервис-Настройка. На панели элементов должна быть нажата кнопка Мастера. Также необходимо проверить, что на экран выведен список полей таблицы, из которой будут выбираться данные (поля) для формы.

В области заголовка создается надпись – «Личная карточка сотрудника». Для этого выбираем элемент «надпись» и определяем область, в которой будет надпись. Затем с клавиатуры вписываем необходимый текст.

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

Остальные данные в форме расположим на вкладках. Это позволит нам избежать работы с полосами прокрутки. Для создания вкладки на панели элементов выбираем кнопку «вкладка» и в области данных рисуем вкладку. По умолчанию вкладки состоят из двух корешков. При необходимости можно добавлять вкладки (пункт верхнего меню «вставка» - «вкладка»). Вкладкам дадим имена: «Личные данные» и «Служебные данные». Затем на вкладки перетаскиваем соответствующие поля из списка полей таблицы.

В область примечания можно добавить кнопки, которые помогут пользователю при работе с формой, например кнопки: «на первую запись»; «на последнюю запись»; «на запись вперед»; «на запись назад»; «поиск записи»; «добавление записи»; «удаление записи»; «ввод данных закончен», «закрыть форму». Эти кнопки создаются с помощью мастера, следуя его подсказкам. Кнопки желательно создавать одинакового размера. Удобнее, когда на кнопке надпись, определяющая ее действие, а не картинка.

Возможный вид формы “Кадры” показан на рисунке 5.

В заключение необходимо задать правильный порядок перехода между полями при нажатии на клавиши «Tab» или «Enter». Это можно выполнить, вызвав окно диалога Последовательность перехода из контекстного меню области данных.

Рис. 5 – Форма «Кадры»

 

Форму «Клиенты» будем создавать мастером. Отвечая на вопросы мастера, следует помнить, что форма предназначена для ввода данных о клиентах и это простая форма в один столбец. При выборе полей, которые выводятся в форму, не берем поле «код клиента», так как тип данных для этого поля «счетчик» и данные этого поля будут вводиться в таблице автоматически при создании новой записи.

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

Информацию в области данных можно разместить произвольно, но при этом должны быть соблюдены следующие требования:

¾ вся информация должна размещаться на одном экране;

¾ порядок перехода между полями в форме должен иметь смысл;

¾ кнопки в области примечания могут быть такие же, как в форме «Кадры»;

¾ в области заголовка должна быть надпись – «Информация о клиентах».

Форму «Клиенты» можно скопировать в буфер обмена и вставить с именем «Поставщики». Затем открыть в режиме конструктора и в окне диалога «Свойства» всей формы, на вкладке «Данные», изменить свойство «Источник данных»: заменить таблицу «Клиенты», на таблицу «Поставщики». В заголовке формы изменить надпись на надпись «Информация о поставщиках». Форму «Поставщики» оформить в другой цветовой гамме.

По форме «Кадры» заполним таблицу «Кадры» в соответствии со штатным расписанием, оставляя вакантными следующие должности: бухгалтер – одна штатная единица, торговые агенты – 2, торговые представители – 1, грузчик – 1 (при заполнении таблицы «Кадры» вакантными должностями в записи должны быть заполнены только два поля – «отдел» и «должность сотрудника»).

Заполним также таблицы «Клиенты» и «Поставщики» с помощью форм. В каждую таблицу внесем по пять записей.

 

Создание формы «Склад».

Форма строится как автоформа в столбец по таблице «Склад» (рис.6).

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

1. После того как пользователь заполняет (обновляет) значение поля «количество товара, поступившего на склад», автоматически должно добавляться такое же значение в поле «остаток».

2. Для ввода поставщика будем выбирать его из списка, в котором указаны статус и название фирмы. В таблицу «Склад» при этом должен вставляться код поставщика.

3. Ввод названия получаемого товара должен осуществляться с помощью элемента управления «поле со списком», этот элемент должен работать с автоподстановкой. Автоподстановка означает: как только в поле введена первая буква из названия товара, программа предлагает название товара на эту букву, которое можно откорректировать или взять полностью. Если поступают товары новых наименований, то пользователь вводит их, и они добавляются в элемент управления «поле со списком». Все названия должны быть отсортированы по алфавиту.

Рис.6. Форма "Склад".

 

Решение первой задачи.

Открываем форму «Склад» в режиме конструктора.

Для поля «Количество купленного товара» вызываем окно диалога «Свойства», выбираем корешок «События», строка «После обновления» (After Update).

Напротив этой строки нажимаем ... («Построитель»), в появившемся окне диалога нам предлагается построить либо выражение, либо макрос, либо программу. Выбираем программу. Попадаем в окно для построения программных модулей обслуживаемой формы, в котором уже есть заготовка процедуры: Private Sub КолКуплТов_AfterUpdate()

...........

End Sub.

Нам необходимо в пустую строку ........... записать лишь один оператор языка программирования: добавить значению поля «Остаток» значение поля «Количество купленного товара». Это можно выполнить вручную: [Остаток]=[Остаток]+[КолКуплТовара]. Созданная процедура будет автоматически обновлять поле «Остаток» значением из поля «Количество купленного товара».

Решение второй задачи.

Для ввода данных о поставщиках необходимо построить элемент управления «поле со списком» на основании запроса «список поставщиков».

В СУБД Access проектирование запросов реализуется двумя способами:

¾ запрос проектируется на основе бланка QBE (Query By Example). Пользователь при таком проектировании задает отдельные параметры запроса в окне проектирования с использованием подсказок и образцов;

¾ запрос проектируется на основе структурированного языка запросов SQL (Structured Query Language). Формируя такой запрос, пользователь применяет инструкции и функции языка, выстраивая некоторое описание.

Типы запросов легко транслируются из одного вида в другой через меню "Вид", поэтому СУБД Access безразлично, каким образом строится запрос.

Основным видом запросов являются запросы на выборку, задаваемые по умолчанию. Другими видами могут быть: запрос на обновление или добавление, которые задаются через меню "Запрос".

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

Бланк построения запроса называется бланком QBE. Каждый столбец бланка относится к одному полю, с которым будем работать в данном запросе. Он может быть просто полем одной из таблиц, вычисляемым полем или итоговым полем.

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

Таблица 13. Операторы вычисления

Оператор Действие
+ Сложение
- Вычитание
* Умножение;
/ Деление;
\ Округляет два арифметических выражения до целых значений и делит первое число на второе, результат округляется до целого;
^ Возводит первое арифметическое выражение в степень, заданную вторым выражением;
MOD Округляет оба арифметических выражения до целых значений, делит первое число на второе и возвращает в качестве результата остаток;
& Оператор конкатенации. Создает текстовую строку как результат присоединения второй строки или текстовой константы к концу первой. Если один из операторов является числом, Access перед проведением конкатенации преобразует его в строку символов.

Создаем запрос на выборку «Список поставщиков» с одним вычисляемым полем. Окно для построения запроса в режиме конструктора (бланк QBE) показано на рис.7.

Рассмотрим строки бланка конструктора запросов.

Строка «поле» используется для выбора имен полей, которые должны присутствовать в наборе записей запроса, по которым надо провести сортировку или значение которых надо проверить. Имена полей, которые будут выводиться в запросах, можно изменить, также в этой строке можно создавать вычисляемые поля, используя построитель выражений.

 

Рис. 7. Построение запроса в режиме конструктора

Окно построителя выражений (рис.8) состоит из двух частей:

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

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

В первый столбец бланка запроса (см.рис.7) на первую строку выбираем поле «код поставщика» прямым перетаскиванием. Во втором столбце строим выражение:

Выражение1: [Поставщики]![Статус предприятия] & " " & [Поставщики]![Название].

Рис. 8. Окно построителя выражений

Вторая строка конструктора запроса (см.рис.7) - «имя таблицы», в эту строку автоматически заносятся имена таблиц, из которых выбираются имена полей, по которым строится запрос.

Третья строка – сортировка данных. Access выводит записи в том порядке, в каком они записаны в таблицу. Если записи необходимо сортировать, то в столбце этого поля на строке «сортировка» выбирается одно из значений списка "по возрастанию/по убыванию".

Четвертая строка – вывод на экран. В этой строке устанавливается переключатель, определяющий – выводить на экран содержимое полей или нет. Часто в запрос требуется включить поля, по которым задают условия отбора, а содержимое этих полей на экран не выводится. В этом случае переключатель ставится в положение "выключен". В нашем случае переключатель включен.

Описание работы в бланке QBE со строками – «условие» и «или» смотри далее (рис.13) в построении запроса – «список сотрудников, обслуживающих заказы».

После заполнения бланка QBE для некоторых полей необходимо установить их свойства. В общем случае поля, выводимые в наборе записей запроса, наследуют свойства, заданные ранее соответствующим полям таблицы. Можно изменить значение этих свойств, а также задавать свойства для вычисляемых полей (для них желательно определять хотя бы одно свойство – «подпись поля»).

Окно диалога «свойства» можно вызвать клавишей F4, либо из контекстного меню, либо из выпадающего списка верхнего меню «Вид». Можно задавать следующие свойства:

1) описание объекта. В это свойство заносится информация, которая выводится в строке состояния окна-запроса в режиме таблицы Dynaset или в формах, построенных по этому запросу, когда данное поле является текущим. Это свойство желательно заполнять;

2) формат поля – представление данных на экране компьютера;

3) маска ввода – определяет шаблон ввода данных в поле;

4) подпись поля - з аголовок столбца в запросе.

В конструируемом запросе для вычисляемого поля задаем описание объекта (например: статус и название фирмы-поставщика) и подпись поля (поставщик).

Создание элемента управления «поле со списком» для ввода «код поставщика» в форме «Склад». Последовательность действий:

1) открываем форму «Склад» в режиме конструктора, выделяем поле «код поставщика» и удаляем его;

2) на панели элементов щелкаем по элементу «Поле со списком» и рисуем элемент в нужном месте. На экране появится окно диалога «создание поля со списком»;

3) Access предлагает выбрать значение из таблицы или запроса или вводить самостоятельно список значений. В нашем случае из запроса. Нажимаем кнопку «Далее».

4) В качестве источника данных выбираем запрос «список поставщиков».

5) Далее выбираем поля, которые будут присутствовать в элементе управления «Поле со списком». При этом следует учесть, что когда список раскрывается, пользователь может видеть несколько столбцов с данными в этом элементе управления, но когда значение выбрано, в форме остается значение только из одного столбца. Для нас более наглядно, если в форме будет написано имя и статус фирмы поставщика. Поэтому выбираем сначала выражение, а затем код поставщика.

6) В следующем окне пользователь может задать ширину столбцов для элемента управления. Если ширину столбца сделать нулевой, то поле не будет видно в элементе управления. Мы можем сделать ширину столбца «код поставщика» нулевой, так как нам не обязательно знать какой код соответствует какой из фирм поставщиков.

7) В следующем окне диалога следует выбрать столбец, значение которогоследует использовать в базе данных. Это, конечно же, «код поставщика».

8) Далее следует выбрать: запоминаем значение, выбранное в «поле со списком», чтобы затем произвести с ним какие-нибудь действия, или сохраняем его в поле таблицы. Сохраняем в поле таблицы «код поставщика».

9) В последнем окне диалога можно задать подпись, которую будет иметь создаваемый элемент управления, например - «Поставщик».

Решение третьей задачи.

Для элемента управления «поле со списком», с помощью которого будет вводиться название товара, строим запрос на выборку "Список Товаров" (рис.9) на основе таблицы «Склад».

Рис. 9 - запрос «Список товаров» в режиме конструктора

Выбираем поле «Название товара» и добавляем строку «Групповая операция» кнопкой на панели инструментов или из меню "Вид". В этой строке по умолчанию появляется действие "Группировка". Это значит, что все товары будут группироваться по названию. В строке "Сортировка" выбираем значение «по возрастанию».

По созданному запросу строим в форме элемент управления «поле со списком» для ввода названий товаров аналогично тому, как был построен элемент управления для ввода «Код поставщика». Окна диалога мастера такие же.

В запросах можно использовать следующие «Групповые операции».

Таблица 14. Групповые операции

Групповая операция Действие
SUM Вычисляет сумму всех полей заданного поля в каждой группе. Можно использовать только для числовых или денежных полей.
Avg Вычисляет среднее арифметическое всех значений данного поля в каждой группе. Функция может использоваться только для числовых или денежных полей, и не включает в вычисления значение Null.
Min Возвращает наименьшее значение, найденное в этом поле внутри каждой группы.
Max Возвращает наибольшее значение внутри поля в каждой группе.
Count Возвращает число записей, в которых значение данного поля отличны от Null(с учетом значения Null, в строку «поле» вводится выражение: Count(*)).
StDev Подсчитывают статистическое стандартное отклонение для всех значений данного поля в каждой группе (числовые или денежные поля). Если в группе меньше двух строк, то Access возвращает значение Null.
Var Подсчитывает статистическую дисперсию для всех значений данного поля по каждой группе. Эту функцию можно применять только к числовым или денежным полям. Если в группе меньше двух строк, то Access возвращает значение Null.
First Last Возвращает первое значение поля в группе или последнее значение поля в группе.

 

Форма "Склад" должна открываться для добавления новой записи, - это ее основное предназначение, т.к. наличие товаров можно просмотреть в таблице "Склад". Поэтому в процедуру события ее открытия Form_Open (вкладка " События " свойств формы, строка " Открытие ", щелчок по символу ..., строка Программы) добавим строку:

DoCmd.GoToRecord, "", acNewRec.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 837; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.64.245 (0.017 с.)