1174-access-2003 (546951), страница 4
Текст из файла (страница 4)
Если какие-либо записи в одном изиспользованных в выражении полей имеют значение Null, то это значение Nullиз справочника по Accessможно преобразовать в нуль при помощи функции Nz.()Но для таких случаев есть функция Nz из категории Преобразования. Ещераз вызовем запрос через Конструктор и исправим наше выражение:Продано: Nz([Остаток начальный])+Nz([Sum-кол-во]) -Nz([Ост_кон])36Вот и все. Теперь колонка Продано сформирована для всех товаров.5.3.3. Запросы с параметрамиЧасто в запросах условия отбора проще задавать не фиксированные, авводить при каждом запросе как параметр. Например, при отборе записей изтаблицы Прибыло поступления товаров за определенный промежуток временипри каждом запросе задать начальную дату и конечную в условии отбора пополю Дата пост.
Само выражение простое: >=[С какого числа] And <=[покакое]10. Попробуйте. Запрос озаглавьте как Запрос_параметр1. Не забудьтепро формат даты: дд.мм.ггПопробуйте и другой вариант определения границ формата Дата: Between[С какого числа] And [по какое].В качестве параметра запроса может быть любое выражение (поясняющийтекст), заключенное в квадратные скобки. Если обратили внимание, то Вы ужедогадались, что имена полей в выражениях всегда заключены в квадратныескобки, а если такого имени нет в списке полей - выдается запрос на вводпараметра.Самостоятельная 5.5.3:• Создать запрос-выборку с параметром списка товаров по группе(первый символ в коде товара из Справочника)• Создать запрос-выборку с параметром Список поступивших товаровот поставщика Х за день У5.4.
Запросы на обновлениеИногда возникает необходимость обновления таблицы или запроса новымиданными или удаления старых записей. Например, для нашего магазина послекаждого решения задачи на учет проданных товаров остаток на конецтекущего периода должен стать остатком начальным на следующий период(т.н. переходящий остаток по терминологии бухгалтерского учета). Это можно10Именно так, один к одному и набирать!37реализовать через Запрос на обновление. Попробуем, но сперва запроспопроще – на удаление.5.4.1.
Запрос на удалениеНам потребуется удаление старых записей из таблицы Прибыло. Датуудаления можно задавать с пульта или сделать автоматическим, используявнутреннее время через функцию Date ().Создать⇒Конструктор⇒добавить таблицу Прибыло⇒выбрать типзапроса удаление и перетащить два поля (* и Дата пост.) на бланк запросасогласно рис.⇒Добавить условие отбора <[До какой даты удалить]⇒ закрыть, имя пустьЗапрос_ Удаление. И попробуйте открыть: Вас обязательно предупредят передудалением!38Будет сообщение о количестве записей на удаление. Если удаляемых записейбудет много, то можете отменить и задать другую дату.Даже после удаления записей добавьте (восстановите) заново: нам ониеще пригодятся! Параметр подтверждения на обновление записей такжепока оставим.5.4.2.
Запрос на обновлениеНам надо обновить Ост_кон на Ост_нач следующего периода. Сделаемэто в три этапа:• сначала удалим все записи из Ост_нач старый,• а потом добавим в уже пустую таблицу все записи изОст_кон,• а сам Ост_кон обнулим (удалим все записи).Но сами таблицы и данные нам могут еще пригодиться, поэтому мынемного схитрим, будем работать только с их копиями. Для этого в режиметаблицы выделить таблицу Ост и через контекстное меню таблицы Сохранитькак сохранить как копии (см.).391. Создать⇒Конструктор⇒добавить таблицу Ост_Нач ⇒ выбрать типзапроса удаление и перетащить все поля (*) на бланк запроса ⇒ имя«Удал_ост_нач»2.
Создать⇒Конструктор⇒добавить таблицу Ост_Кон ⇒ выбрать типзапроса Добавление ⇒добавить таблицу Ост_нач и перетащить обаполя в бланк запрос, а в строку Добавление вставить Ост_начальный(см. ниже)⇒ имя «Добавл_ост_нач»3. Создать ⇒ Конструктор ⇒ добавить таблицу Ост_кон ⇒ выбрать типзапроса удаление и перетащить все поля (*) на бланк запроса ⇒«Удал_ост_кон»40Ну, а теперь попробуйте выполнить эти запросы поочередно.☺ Конечно, все эти манипуляции с запросами на обновление переходящихостатков несут только учебную нагрузку, потому что на самом деле гораздо прощеудалить старый Ост_нач, а новый Ост_кон переименовать, а имена полей в обеихтаблицах сделать одинаковыми, просто Остаток.6. ОтчетыОтчеты – это бумажный вариант запросов и таблиц, дополнительно которыеможно группировать, итоги подсчитывать и т.д. Поэтому здесь зацикливаться11не будем, посмотрим 1-2 примера.6.1.Остатки на началоОтчеты ⇒ Создать ⇒ Мастер отчетов⇒ выбрать Запрос1⇒ Все поля⇒Уровни группировки не добавлять (сейчас не нужны) ⇒ Сортировка поумолчанию по первому полю Код_тов, поэтому просто вперед ⇒ Макеттабличный, ориентация книжная, галочка в подборе ширины ⇒ Стиль можнострогий ⇒ Имя Отчет_остнач ⇒ Просмотреть ⇒ Готово.11Слово введено в обиход из жаргона программистов ещё в начале 80-ых годовпрошлого века.
Автор тоже имел отношение к этому «святому делу» развития (илиисковеркования?) великого и могучего русского языка41Немного приукрасим наш отчет через Конструктор. Окно конструктораотчетов примерно выглядит так:Слева видна вертикальная панель кнопок, все элементы шаблона графические иподчиняются их законам корректировки: можно перетаскивать при помощиизображения руки, менять размеры и т.д.
Мы сейчас заголовок чуть перетащимв центр, раздвинем вниз Примечание отчета, и при помощи ab(поле) будемподсчитывать общий итог.42Место для итога подберем под полем Остаток, будет следующаякартина. Поле11 – это надпись Итого:, Свободный – полевычисляемое по формуле Sum(Остаток нач), но для этого применимконтекстное меню и в нем Свойства для нашего поля.Сейчас следует щёлкнуть на Поле(ab), нарисовать егоместоположение на Примечании отчета, (когда рисуем поле, тослева автоматически будет ставиться его надпись в виде значка Полетакое-то, это внутренние, по умолчанию имена подписей, которыемы можем изменить через Свойства поля)В мире мудрых мыслейMetodychka not dogma, but guidance to the action англ.(Методичка не догма, а руководство к действию )— (первыйдевиз серии «Компьютер для Петруши»)Sapienti sat лат.
(сапиэнти сат) — понимающему достаточно…(второй девиз серии «Компьютер для Петруши»).43Если все правильно, то выделим поле11 и тоже через контекстныйпостроитель изменим Подпись поля на Итого:Закрыть и посмотреть, что-нибудь да высветится…6.2.Отчет о поступленияхСоздать ⇒ Мастер отчетов ⇒ выбрать Прибыло и Спр., из них поля Код,Наим., Кол-во, Дата, Поставщик ⇒ Вид представления Прибыло ⇒ Уровнигруппировки Код ⇒ Сортировку по умолчанию Код (оставить пустым), Итоги –Sum по кол-во, данные и итоги, ОК ⇒ Ступенчатый ⇒ Спокойный ⇒Прибыло, готово.44Посмотрим фрагмент отчета.
Он мне не очень нравится.Проще всего отчеты создавать через мастер отчетов из уже готовыхзапросов, а дальше под свой вкус корректировать при помощи конструктора, чтомы и сделаем.Сейчас вызовем конструктор, Друг уже на месте, он нам поможет...Немного порисуем: Наименование из области данных через вырезать ивставить или (просто перетащить) поставим в Заголовок группы, Областьданных через свойства зальем светлой краской, вместо подписи Sum напишемВсего и т.д., и примерно вот что получим:45Фрагмент отчета будет выглядеть так:А Вы можете приукрасить на свой вкус: разделитель групп, фон и т.д.Самостоятельные 6.2:• Создать отчет для запроса Продано• Создать отчет для запроса о наличии товаров с истекшим срокомхранения (дата выпуска = дата поступления – 1 день)7.
МакросыДля автоматизации многих операций удобно использование макросов.Что такое макросы и как они работают – почитайте через справочнуюсистему; ключевое слово – макрос. Почитали? Тогда приступим.46Для начала создадим три макроса, запускающие три последовательныхзапроса на upgrade12 Остатков: смотри Запрос на обновление.Макросы ⇒ создать ⇒ Включить кнопку Имена макросов и дать имяОбнова, в колонке Макрокоманды выбрать Сообщение и ниже варгументахкое-что добавить ⇒⇒Дальше смотри на картинки, делай как я и закрой макрос ⇒12С английского обновление, модернизация.
Пора бы знать, если до БД имакросов добрались…4713⇒⇒13Имена запросов не вводим, а выбираем из списка по смыслу!!!48⇒Запустить макрос можно через кнопку Запуск⇒Вот и запускайте на здоровье. А если хотите, можно назначить кнопки длязапуска, например, внутри какой-то формы.Самостоятельные 7.1:• Создать макросы на открытие отчетов и их свертывание послеинформационного сообщения8. Кнопочные формыВ приложениях Access можно автоматизировать многие операции, которые вдругих БД выполняются отдельно, по шагам. Специальный интерфейсприложений делает обслуживание баз данных максимально удобным для«чайников» и любителей кнопочных форм.
Для таких целей имеется даже свойДиспетчер кнопочных форм в меню Сервис. Попробуем и мы что-нибудьизобразить…• Сервис ⇒ Служебные программы ⇒ Диспетчер кнопочныхформ ⇒ Создать и будем создавать последовательно 4кнопочные формы (Поступления, Отчеты, Макросы, ЗакрытьБД). Они расположатся рядом в Странице кнопочных форм (вамнадо будет последовательно 4 раза нажать на Создать иприсвоить имя каждой из форм, пока больше ничего).49Это экран после четвертогонажатия на Создать• После этого выделим Main Switchboard ⇒ Изменить ⇒Создать 4 кнопочные формы с одинаковой у всех командой –Перейти к соответствующей кнопочной форме.50• Каждую из форм последовательно выделить ⇒ Изменить ⇒ внутри черезСоздать создавать переходные кнопки (элементы кнопочных форм). Послетого, как будут созданы все элементы данной формы (обязательно с кнопкойвозврат к кнопочной форме предыдущего уровня!), то окно можно Закрыть ивернуться к предыдущему уровню.














