Главная » Просмотр файлов » Десять шагов в microsoft_access

Десять шагов в microsoft_access (835787), страница 9

Файл №835787 Десять шагов в microsoft_access (Десять шагов в Microsoft Access) 9 страницаДесять шагов в microsoft_access (835787) страница 92021-04-14СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

Теперь становится ясно, зачем мы назначили в качестве источника данных дляформы «отчет_приход» таблицу «фирма»! Аналогично в примечаниеотчета поместим надпись «Заведующий складом», содержащую выражение =[Forms]![отчет_приход]![заведующий], то есть Ф. И. О. заведующего складом, а также текущую дату, определяемую функцией73Now() (рис. 96). Аналогичным образом отредактируем и отчет по объемам поставок.Замечание! Мы создали форму «приход», используя соответствующиезапросы. Теперь, когда мы изменили запросы, нам придется заменить вэтой форме источник данных.

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

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

В таблице «приход» в верхнейчасти окна запроса два раза щелкнем по названиям полей «товар» и «дата». Выберем пункт меню «Вид  Групповые операции». В наборесвойств полей появится новая строка – «Групповая операция». В этойстроке для поля «товар» выберем в меню значение «Группировка», адля поля «Дата» – значение Max (рис. 97). Это значит, что в запросе, какв логической таблице, каждый товар будет представлен один раз, а вполе, соответствующем полю «дата», будет стоять наибольшее значениедаты поставки этого товара.

Созданный запрос представлен на рис. 98.Теперь откроем в режиме конструктора таблицу «фирма» и добавимеще одно поле – «период», которое будет содержать количество дней допоследней поставки, то есть период, за который считается средняя цена.Очевидно, это поле должно быть числовым.74Рис. 97. Групповые операции в запросеРис.

98. Запрос «последняя_поставка»После того, как Вы создадите форму «отчет_расход», аналогичнуюформе «отчет_приход», в этой форме надо поместить новое поле «период» (рис. 99). Чтобы обеспечить удобную Вам последовательность переходов, воспользуйтесь пунктом меню «Вид  Последовательностьпереходов». В дальнейшем из этой формы могут вызываться отчеты,использующие среднее значение цены.75Рис. 99. Вид формы «отчет_расход» в режиме конструктора8.2.

Расчет диапазонов дат. Создадим простой запрос, источникомданных для которого будет запрос «последняя_поставка». Дадим запросу имя «диапазон_дат», откроем его в режиме конструктора и добавимвычисляемое поле (рис. 100):Min_дата: DateAdd("y";-[Forms]![отчет_расход]![период];[Max_дата]).Рис. 100. Запрос «диапазон_дат» в режиме конструктораЗдесь «Min_дата» – имя вычисляемого поля, содержащего дату, предшествующую Max_дата. Функция DateAdd вычисляет дату, отличающуюся от исходной на заданное количество единиц времени. Первыйаргумент «y» задает единицу времени – день.

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

Тот факт, что запрос использует76значение поля из формы «отчет_расход», не означает, что мы не можемоткрыть этот запрос автономно. Просто при попытке открыть запроспоявится диалоговое окно, в котором Вы введете это значение (рис.101). Того же результата можно достичь, если сначала открыть форму«отчет_расход», а потом запрос. Созданный запрос представлен на рис.102. Теперь каждому товару поставлен в соответствие интервал временипоставок, по которому следует вычислять среднюю цену (в нашем примере – 10 дней).Рис. 101.

Ввод количества днейРис. 102. Запрос «диапазон_дат»779. Шаг девятый. Установка связей между таблицамиТеперь мы умеем формировать практически любые отчеты по приходу ирасходу товаров. Но для принятия решений ничуть не меньший интереспредставляет информация о наличии товаров на данный момент.Для этого мы должны научиться устанавливать связи между таблицами. Связь – способ объединения информации, хранящейся в разныхтаблицах.9.1. Отбор данных по диапазону. Создадим простой запрос, в качествеисточника данных для которого назначим таблицу «приход». Выберемполя «дата», «товар», «цена» и «количество».

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

Установим связь между таблицей «приход» и запросом «диапазон_дат» по полю «товар». Для этого нажмем левую клавишу мыши на поле «товар» в окне таблицы «приход», не отпуская клавиши, перетащим указатель на поле «товар» в окне «диапазон_дат». Теперь два одноименных поля соединены линией, что означает установление связи (рис. 103)! Если по линии связи дважды щелкнуть левой клавишей, появится окно «Параметры объединения». По умолчанию мыполучили объединение только тех записей, в которых связанные поляобеих таблиц совпадают.

Это нас вполне устраивает. Осталось толькодобавить в запрос поля «Min_дата» и «Max_дата». Для этого надо в окне «диапазон_дат» дважды щелкнуть левой клавишей по соответствующим полям. В строке «Условие отбора» для поля «дата» зададимусловие: Between [Min_дата] And [Max_дата]. В строке «Вывод на экран» погасим галочку у полей «дата», «Min_дата» и «Max_дата», так каквывод на экран этих полей в дальнейшем не нужен. И, наконец, создадим в запросе вычисляемое поле «стоимость: [количество]*[цена]».В рабочем режиме построенный запрос будет иметь вид, представленный на рис.

104.78Рис. 103. Связь таблицРис. 104. Запрос «диапазон_стоимость»9.2. Расчет цен. Создадим простой запрос, в качестве источника данныхдля которого назначим последний созданный запрос «диапазон_ стоимость». Выберем поля «товар», «количество» и «стоимость».79Сделаем запрос итоговым. Поэтому поле «товар», по которому будетпроизводиться группировка, должно стоять в списке первым. По полям«количество» и «стоимость» будем производить суммирование (рис.105).Рис. 105.

Суммирование по полям «количество» и «товар»Сохраним запрос под именем «цена» и откроем его в режиме конструктора. Система присвоила двум вычисляемым полям имена «Sum _ количество» и «Sum _ стоимость». Исправим эти названия на«сум_количество» и «сум_стоимость». Теперь добавим в запрос вычисляемое полецена: IIf([сум_количество]>0;[сум_стоимость]/[сум_количество];0).Логическая функция IIf имеет три аргумента.

Первый аргумент – логическое выражение. Если логическое выражение истинно, возвращаетсязначение первого аргумента, иначе – второго. Мы использовали функцию «IIf» для того, чтобы заданное по ошибке нулевое значение поля«количество» не приводило к сбою в работе приложения.На вычисляемом поле «цена» щелкнем правой клавишей мыши и откроем свойства поля. В разделе свойств «Общие» установим фиксированный формат поля. Этот формат отражает два знака после точки. В строке «Групповая операция» поля «цена» должно быть установлено значение «Выражение». Итак, мы построили запрос, который выдает средниевзвешенные цены каждого товара, рассчитанные по соответствующемудиапазону дат (рис.

106).9.3. Расчет наличия товаров. Откроем запрос «расход Запрос» и добавим запрос «цена». Объединим таблицы по полю «товар» и добавим взапрос поле «цена» из запроса «цена». Теперь «расход Запрос» так же,80как и «приход Запрос», содержит цены всех товаров, правда, средние.Этот запрос может являться источником данных для множества расчетов по расходу товаров, аналогичных составленным ранее отчетамо приходе товаров.Рис. 106.

Запрос «цена»Рис. 107. Форма для вызова отчета о наличии товаров81Рис. 108. Запрос «приход_наличие»Теперь для расчета наличия на основании таблиц «приход» и «расход»составим два простых итоговых запроса, выдающих соответственно длякаждого товара сумму всего прихода и сумму всего расхода. Оба запроса содержат поля «товар» и «количество». Присвоим запросам соответственно имена «приход_наличие» и «расход_наличие».

Вместо присвоенных системой имен «Sum_количество» дадим в запросах суммарнымколичествам имена «приход» и «расход» соответственно (рис. 109). Тогда разность значений этих полей для соответствующего товара дастналичие товара на данный момент. Построим запрос для определенияналичия товаров. Для этого создадим простой запрос, источником данных для которого будет «приход_наличие», и сохраним его под именем«наличие».Рис. 109. Запросы «приход_наличие» и «расход_наличие»82Рис. 110. Запрос «приход» в режиме конструктораФактически этот запрос будет просто копией своего источника и егоможно было бы создать из запроса «приход_наличие», используя команды меню «Правка  Копировать» и «Правка  Вставить».

Характеристики

Тип файла
PDF-файл
Размер
1,12 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее