Самоучитель Microsoft Access 2013



Download 16,15 Mb.
Pdf ko'rish
bet83/146
Sana15.11.2022
Hajmi16,15 Mb.
#866071
1   ...   79   80   81   82   83   84   85   86   ...   146
Bog'liq
Юрий Бекаревич, Нина Пушкина - Самоучитель Microsoft Access 2013 (2014)


Глава 6 
Рис. 6.14. 
Окно для оформления столбцов списка 
Рис. 6.15. 
Окно выбора поля источника значений для поля формы 
Далее введите надпись поля со списком — 
Код покупателя 
(рис. 6.17). 
Нажмите кнопку 
Готово
(Finish). В результате будет создано новое поле со спи-
ском 
КОД_ПОК
. Замените поле с кодом покупателя на созданное мастером поле со 
списком. Использование поля со списком покупателей в режиме формы иллюстри-
рует рис. 6.10. Если потребуется настройка ширины столбцов списка, в окне 
свойств поля со списком в строках 
Ширина списка
(List Width) и 
Ширина
столб-
цов
(Column Width) задайте подходящие значения. 


Разработка интерфейса для ввода, просмотра и корректировки документов 
273 
Рис. 6.16. 
Выбор поля формы, в которое вводится значение из списка 
Рис. 6.17. 
Определение подписи поля со списком 
Создание поля со списком в режиме конструктора 
Мастер создает новое поле со списком. В режиме конструктора можно преобразо-
вать существующее поле в поле со списком.
В подчиненной форме ПЛАН ПОСТАВОК преобразуйте поле 
КОД_ТОВ
(код товара) 
в поле со списком. Для этого выберите в контекстном меню этого поля команду 
Преобразовать элемент в 
(Change To) и далее строку — 
Поле со списком 
(Combo 
Box). 


274 
Глава 6 
Затем откройте свойства поля (рис. 6.18). На вкладке 
Данные
(Data) в строке 
Дан-
ные
(Control Source) будет указано поле, которое будет заполняться в форме — 
КОД_ТОВ
. Выбором в строке 
Источник строк
(Row Source) таблицы ТОВАР указы-
вается, что из ее записей надо формировать список. В строке 
Тип источника строк
(Row Source Type) автоматически появляется
Таблица или запрос
(Table/Query), а 
в строке 
Присоединенный столбец
(Bound Column) — 1. Таким образом, чтобы 
сформировать поле со списком, может оказаться достаточным преобразовать обыч-
ное поле и выбрать его источник строк. 
О
БРАТИТЕ ВНИМАНИЕ
Список поля будет включать значения первого указанного в структуре таблицы столб-
ца. В приведенном примере таким полем является поле 
КОД_ТОВ
(код товара) — ключ 
таблицы ТОВАР, поэтому список поля будет построен правильно. Если же на первом 
месте в структуре таблицы окажется другое поле, список будет содержать неверные 
значения. В таком случае нельзя в качестве источника строк выбирать таблицу. Нужно 
с помощью построителя запросов или вручную записать в качестве источника строк 
инструкцию SQL, выбирающую из таблицы нужное поле — в данном случае поле с ко-
дом товара. 
Рис. 6.18. 
Определение свойств 
создаваемого поля со списком 
без использования мастера 
Если в списке необходимо отображать два столбца — код товара и наименование,
в конце строки свойства 
Источник строк
(Row Source) щелкните на кнопке
Построитель запросов 
(Query Builder). Добавьте в бланк запроса таблицу ТОВАР 
и включите в запрос ее поля 
КОД_ТОВ
и 
НАИМ_ТОВ
. Закройте окно построителя выра-
жений, подтвердив сохранение инструкции SQL созданного запроса и обновление 
свойства. Теперь в строке 
Источник строк
будет записана инструкция SQL: 
SELECT ТОВАР.КОД_ТОВ, ТОВАР.НАИМ_ТОВ FROM ТОВАР; 


Разработка интерфейса для ввода, просмотра и корректировки документов 
275 
В окне свойств поля на вкладке 
Макет
(Format) замените значение свойства поля 
Число
столбцов
(Column Count) с 
1
на 
2
. Кроме того, установите ширину столбцов 
и ширину списка, указав, например, 2 см, 5 см и 7 см соответственно. 
Для создания нового поля со списком без помощи мастера надо перетащить в фор-
му элемент управления 
Поле со списком 
(Combo Box), когда кнопка 
Использо-
вать
мастера 
(Use Control Wizards) не активна. 
Вычисления в документе 
Вычисления в форме могут осуществляться как в каждой записи формы, так и для 
группы записей, при формировании итоговых величин. Расчетные величины только 
отображаются в вычисляемых полях формы. Для сохранения результатов в таблице 
базы данных может быть использован макрос или процедура на VBA.
Рассчитайте в форме ДОГОВОРЫ С ПОКУПАТЕЛЯМИ значения стоимости зака-
занного товара в каждой строке подчиненной формы, а также общую стоимость 
заказанного в договоре товара. Разместите соответствующие вычисляемые поля, 
как предусмотрено в макете формы. 
З
АМЕЧАНИЕ
Если в форме отображается поле 
СУММА_ПОСТ
из таблицы ПОСТАВКА_ПЛАН, помес-
тите вычисляемое поле рядом. Сравните введенные в поле 
СУММА_ПОСТ
данные с рас-
четными и при необходимости подправьте. Если поле 
СУММА_ПОСТ
пусто, скопируйте 
в него рассчитанное значение, и оно сохранится в поле таблицы. 
Чтобы произвести вычисления на основе данных одной записи, создайте в подчи-
ненной форме вычисляемое поле и запишите туда выражение 
=КОЛ_ПОСТ*ЦЕНА
. Для 
этого откройте подчиненную форму в режиме макета и, нажав на вкладке ленты
Конструктор
(Design) в группе 
Элементы управления
(Controls) кнопку 
Поле
(Text Box), поместите этот свободный элемент управления, не связанный с источ-
ником данных, в конце строки данных. Проследите, чтобы при вставке элемента в 
конец строки данных рядом с существующим полем появилась желтая вертикаль-
ная линия. Это позволит вставить новый столбец непосредственно в макет формы. 
Откройте свойства нового поля и в строку 
Данные
(Control Source) на одноимен-
ной вкладке запишите выражение. При этом можно воспользоваться построителем 
выражений. Можно переключиться в режим конструктора и ввести выражение не-
посредственно в элемент управления 
Свободный
(Unbound). Выражение должно 
начинаться со знака равенства. В качестве операндов выражения чаще всего ис-
пользуются имена полей, константы, а в качестве операторов — знаки арифметиче-
ских операций.
Вычисление итоговых значений для группы записей подчиненной формы может 
быть выполнено с помощью встроенных статистических функций только в области 
примечания подчиненной формы. Для подсчета общей стоимости договора создай-
те в этой области свободный элемент управления и запишите туда выражение, со-
держащее статистическую функцию подсчета суммарной стоимости товаров 
=Sum(КОЛ_ПОСТ*ЦЕНА)
. В качестве аргумента статистической функции нельзя исполь-


276 
Глава 6 
зовать имена других вычисляемых элементов управления формы. Ссылаться можно 
только на имена полей, т. к. они являются источником данных. 
Для отображения результата вычисления в основной форме создайте там вычис-
ляемый элемент управления и запишите выражение 
=[ПЛАН ПОСТАВОК].Form![Поле8] 
Это выражение является ссылкой на элемент управления 
Поле8
в подчиненной 
форме, содержащий общую стоимость товаров. Общий формат такой ссылки при-
веден выше. 
Чтобы элементы управления из области примечаний подчиненной формы не ото-
бражались при просмотре формы, установите в свойстве примечания 
Вывод
на эк-
ран
(Visible) значение 
Нет

Перейдите в режим просмотра в форме и убедитесь, что результаты расчетов ото-
бражаются правильно. 
Работа с документами 
Форма ДОГОВОРЫ С ПОКУПАТЕЛЯМИ
предназначена для ввода, просмотра, 
корректировки и удаления данных о договорах. В основной форме отображаются 
данные из одной записи таблицы ДОГОВОР, дополненные данными из таблицы 
ПОКУПАТЕЛЬ. В подчиненной форме выводятся связанные с договором записи из 
таблицы ПОСТАВКА_ПЛАН. Эти записи дополнены данными из таблицы ТОВАР. 
Чтобы начать работу с формой, выберите ее в области навигации и в контекстном 
меню выполните команду 
Открыть 
(Open).
Для просмотра и корректировки данных конкретного договора сделайте нужную 
запись текущей. Для этого воспользуйтесь созданными в форме кнопками 
Преды-
дущий договор
и 
Следующий
договор
или стандартными кнопками перехода по 
записям, предусмотренными как для основной, так и для подчиненной формы. 
При большом числе записей используйте команду поиска нужной записи. Для этого 
установите курсор на поле с номером договора и нажмите кнопку 
Найти 
(Find)
в соответствующей группе вкладки 
Главная
(Home). В диалоговом окне 
Поиск и 
замена
(Find and Replace) задайте номер нужного договора. После нажатия в этом 
окне кнопки 
Найти далее 
(Find Next) в форме отобразятся данные о заданном до-
говоре. 
В
НИМАНИЕ

Грубой ошибкой является попытка перейти к нужной записи путем ввода нового зна-
чения в поле идентификации текущей записи — например, нового значения номера 
договора в форме ДОГОВОР. Такие действия могут привести лишь к изменению зна-
чения идентификатора в текущей записи. 
Для просмотра договоров в порядке возрастания или убывания его номеров устано-
вите курсор на поле с номером договора и нажмите кнопку 
Сортировка по воз-
растанию
(Sort Ascending)
или
Сортировка по убыванию
(Sort Descending)


Разработка интерфейса для ввода, просмотра и корректировки документов 
277 
в группе 
Сортировка и фильтрация
(Sort & Filter) на вкладке ленты 
Главная 
(Home). 
Рассмотрим ввод в базу данных нового документа "Договор". Для загрузки данных 
о новом договоре через форму ДОГОВОРЫ С ПОКУПАТЕЛЯМИ нажмите на 
нижней панели кнопок перехода по записям кнопку 
Новая
запись
(New (blank) 
record) 
. Текущей становится пустая запись источника основной формы — таб-
лицы ДОГОВОР и пустая запись источника подчиненной формы — таблицы 
ПОСТАВКА_ПЛАН. 
В главной форме заполните обязательные поля: номер договора (ключ таблицы 
ДОГОВОР) и код покупателя (поле связи с таблицей ПОКУПАТЕЛЬ), а также поле 
даты, загружаемой в таблицу ДОГОВОР. Справочные поля из таблицы 
ПОКУПАТЕЛЬ автоматически отобразятся после ввода кода покупателя. 
С полем типа данных 
Дата/время
(Date/Time) связывается календарь. В форме при 
выборе поля с датой заключения договора справа от него отображается значок ка-
лендаря. Выбранная в календаре дата вводится в поле 
ДАТА_ДОГ
. Однако если для 
поля определена маска ввода, календарь недоступен для использования. Если маска 
ввода была задана в свойствах таблицы, она автоматически наследуется полем в 
форме. Если после создания формы удалить маску в поле таблицы, она сохранится 
в поле формы. Для удаления маски в поле формы откройте свойства поля и очисти-
те соответствующую строку на вкладке 
Данные 
(Data). 
З
АМЕЧАНИЕ
При наличии календаря сохраняется возможность ручного ввода даты в поле. 
Сформированная запись автоматически сохранится в таблице ДОГОВОР при пере-
ходе в подчиненную форму. 
Поле суммы по договору может быть рассчитано и введено в таблицу ДОГОВОР 
после ввода данных в подчиненной форме. 
З
АМЕЧАНИЕ
Сохранить новую запись можно, выполнив команду 
Сохранить
(Save) в группе 
Запи-
си
(Records) на вкладке ленты 
Главная 
(Home) или просто щелкнув мышью на облас-
ти выделения записи. 
Перейдите к формированию записей в подчиненной форме. В каждой новой записи 
введите значения обязательных полей — кода товара (ключевое), месяца поставки 
(ключевое), а также полей — минимальная партия поставки и количество. После 
ввода кода товара справочные данные — наименование, единица измерения и цена 
из таблицы ТОВАР — отобразятся автоматически. Сформированная запись сохра-
нится в таблице ПОСТАВКА_ПЛАН при переходе к другой записи. 
Если в строке подчиненной формы создано вычисляемое поле для расчета стоимо-
сти поставки по каждому товару, значение стоимости будет автоматически вычис-
лено после заполнения полей Цена и Количество. 
Если в примечании подчиненной формы создано вычисляемое поле для расчета 
общей стоимости поставки, и на него сделана ссылка в вычисляемом поле основной 


278 
Глава 6 
части формы, после сохранения записи в подчиненной форме в главной форме ото-
бразится общая сумма по договору. 
З
АМЕЧАНИЕ
Для расчета стоимостей с сохранением результата в соответствующих полях таблиц 
ПОСТАВКА_ПЛАН и ДОГОВОР должны быть подготовлены процедуры обработки со-
бытий на VBA. 
Рассмотренные ранее способы перехода по записям формы не обеспечивают поль-
зователя достаточно удобным интерфейсом для выборки нужных документов. При 
работе с формами — электронными аналогами документов — пользователю часто 
необходимо иметь средства, обеспечивающие быстрый поиск нужного документа 
по заданным условиям отбора. Например, могут задаваться условия отбора для вы-
борки документа по его номеру или по заданному временному диапазону дат.
В общем случае целесообразно предусмотреть выборку по заданному идентифика-
тору объекта (товара, покупателя, склада, договора и т. п.) или по диапазону коли-
чественных показателей. 
Выборка документа по его идентификатору 
Рассмотрим организацию выборки нужного договора по заданному номеру. Преду-
смотрим возможность ввода номера договора в диалоге с пользователем. 
Для этого в источнике записей главной формы ДОГОВОРЫ С ПОКУПА-
ТЕЛЯМИ — запросе на выборку из записей двух взаимосвязанных таблиц — в по-
ле номера договора 
НОМ_ДОГ
определим параметр запроса 
[Номер договора]
(рис. 6.19). Представленное на рисунке окно построителя запросов открывается при
Рис. 6.19. 
Источник записей главной формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ 


Разработка интерфейса для ввода, просмотра и корректировки документов 
279 
щелчке на соответствующем значке в строке свойства формы 
Источник записей
(Record Source). 
Теперь при открытии формы будет выводиться диалоговое окно (рис. 6.20) для 
ввода значения параметра запроса (
Номер договора
). 
Рис. 6.20. 
Диалоговое окно ввода значения параметра запроса 
После ввода нужного номера договора в форме будут доступны данные соответст-
вующего договора. Однако для перехода к просмотру другого договора потребует-
ся заново открыть форму. 
Для удобства пользователя желательно создание такого интерфейса, который обес-
печит возможность выбора документа при постоянно открытой форме. Для этих
Рис. 6.21. 
Форма для выборки договора по выбираемому из списка номеру в режиме конструктора 


280 
Глава 6 
целей может быть подготовлена форма интерфейса, в которую встраивается форма 
документа. Форма интерфейса должна включать элемент управления, который 
обеспечивает ввод значения параметра запроса. 
Создадим пустую форму (без источника записей), воспользовавшись командой 
Конструктор
форм
(Form Design) в группе 
Формы
(Forms) на вкладке ленты 
Соз-
дание
(Create), и присвоим ей имя 
Выборка договоров
. Создадим в форме, открытой 
в режиме конструктора, с помощью мастера элемент управления — поле со спи-
ском. Выберем в качестве источника формирования значений списка таблицу 
ДОГОВОР и ее поле — номер договора. Полю со списком в его свойствах дадим 
имя, совпадающее с названием параметра запроса, — 
Номер договора
(см. рис. 6.19). 
В надписи поля запишем обращение к пользователю: 
Введите номер договора
. Пе-
ретащим из окна базы данных форму ДОГОВОРЫ С ПОКУПАТЕЛЯМИ в область 
данных формы 
Выборка договоров
. Полученная составная форма в режиме конст-
руктора приведена на рис. 6.21. 
Удалите надпись встроенной формы ДОГОВОРЫ С ПОКУПАТЕЛЯМИ. В свойст-
вах макета формы 
Выборка договоров
Область выделения
(Record Selectors), 
Поло-
сы прокрутки
(Scroll Bars), 
Кнопки перехода
(Navigation Buttons)
выберите зна-
чение 
Нет

В режиме формы при выборе из списка номера нужного договора он отобразится 
во встроенной форме ДОГОВОРЫ С ПОКУПАТЕЛЯМИ (рис. 6.22). 
Рис. 6.22. 
Интерфейс, обеспечивающий выборку нужного договора в поле со списком 


Разработка интерфейса для ввода, просмотра и корректировки документов 
281 
Выборка документа по диапазону дат 
Для формы с именем ДОГОВОРЫ С ПОКУПАТЕЛЯМИ предусмотрим возмож-
ность ввода пользователем диапазона дат заключения договоров и выборки соот-
ветствующих договоров. Для этого подготовим интерфейс, обеспечивающий вы-
борку документов по диапазону дат, по аналогии с подготовкой интерфейса, рас-
смотренной в предыдущем примере. 
В запросе — источнике записей главной формы (см. рис. 6.19) удалим ранее задан-
ный параметр запроса 
[Номер договора]
и зададим в поле даты заключения догово-
ра 
ДАТА_ДОГ
два параметра запроса. Параметры определим в выражении 
Between 
[ДатаНачальная] And [ДатаКонечная]
, записанном в условии отбора. 
Как в предыдущем примере, создадим форму без источника записей, в которой 
разместим два свободных поля, не связанных с каким-либо источником данных.
В свойствах одному полю дадим имя параметра 
ДатаНачальная
, второму — 
Да-
таКонечная
. Надписи полей изменим на 
Дата начала периода
и 
Дата окончания 
периода
соответственно. Перетащим из окна базы данных форму ДОГОВОРЫ 
С ПОКУПАТЕЛЯМИ в область данных формы. 
Рис. 6.23. 
Интерфейс, обеспечивающий выборку документов по диапазону дат 


282 
Глава 6 
Для связи календаря с полями ввода дат диапазона выберите для каждого поля
в свойстве 
Формат поля 
(Format) на вкладке 
Макет
(Format) нужный формат, на-
пример 
Краткий формат даты
(Short Date). 
В режиме формы при вводе дат начала и конца диапазона во встроенной форме 
отобразятся выбранные договоры (рис. 6.23). 
Выборка документов с помощью фильтрации 
Используйте фильтры для выборки различных сведений из договоров. В открытой 
для работы с договорами форме установите курсор на поле с номером договора. 
Щелкните на кнопке 
Фильтр 
(Filter) в группе 
Сортировка и фильтр
(Sort & Filter) 
ленты 
Главная
(Home). В открывшемся окне откройте список 
Текстовые фильт-
ры 
(Text Filters). Для поля доступны эти фильтры, потому что поле имеет тексто-
вый тип данных. В списке щелкните на опции 
Содержит 
(Contains) — откроется 
настраиваемый фильтр (рис. 6.24). Введите нужный номер договора и нажмите 
кнопку 
ОK
. В форме отобразится выбранный договор. Открыть список 
Текстовые 
фильтры
можно также воспользовавшись контекстным меню поля.
Рис. 6.24. 
Диалоговое окно задания условия отбора для фильтра 
Чтобы снять фильтр с формы, используйте команду контекстного меню поля 
Снять фильтр с Номер договора
(Clear filter from НОМ_ДОГ). Если необходимо, 
задайте новые условия отбора по полю с номером договора. 
Чтобы отобрать договоры за заданный период, в контекстном меню поля с датой 
заключения договора откройте 
Фильтры
дат
(Date Filters). Список фильтров для 
дат позволяет осуществить выборку по самым разным критериям (рис. 6.25). 
О
БРАТИТЕ ВНИМАНИЕ
Итоговые данные по договору подсчитываются только для выбранных в результате 
фильтрации данных. 
Для отбора в договорах сведений только о заданном товаре используйте текстовый 
фильтр по полям с наименованием товара. Для отбора заданного товара, заказанно-
го в заданном месяце, не снимая фильтра с наименования товара, выполните 
фильтрацию по полю 
СРОК_ПОСТ
(срок поставки). Числовой фильтр по полю 
СРОК_ПОСТ
позволит отобрать данные в любом заданном интервале. При использо-
вании фильтров легко проверить запланированные поставки заданного товара в до-
говорах и, если необходимо, откорректировать или дополнить их новыми строками. 
Таким образом, использование фильтра позволит просматривать данные в различ-
ном представлении.


Разработка интерфейса для ввода, просмотра и корректировки документов 
283 
Рис. 6.25. 
Фильтры для выборки 
записей по полю с типом данных 
Дата/Время
Задание 6.1. Создание интерфейса для работы с документом "Накладная" 
Создайте многотабличную форму для ввода и корректировки в базе данных
накладных на отгрузку товаров. 
Подсхема для такой формы приведена на рис. 6.26. В результате загрузки в базу 
данных по накладным должны создаваться только записи таблиц НАКЛАДНАЯ
и ОТГРУЗКА. 
1.
Осуществите проектирование интерфейса для загрузки данных документа 
НАКЛАДНАЯ:

определите общую структуру составной формы в соответствии с подсхемой 
данных для формы, приведенной на рис. 6.26; 

разместите реквизиты в проекте формы так, чтобы обеспечить удобный ввод 
данных с документа, а также отображение справочной информации по дого-
вору, покупателю и товару.
2.
Выполните конструирование экранной формы, через которую будет осуще- 
ствляться ввод, добавление и изменение записей таблиц НАКЛАДНАЯ и 
ОТГРУЗКА. 
3.
Загрузите данные с документа НАКЛАДНАЯ
через построенную форму. 


284 
Download 16,15 Mb.

Do'stlaringiz bilan baham:
1   ...   79   80   81   82   83   84   85   86   ...   146




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish