
- •Пензенский государственный университет Автоматизация документирования деятельности организации
- •Введение
- •1 Анализ объекта проектирования
- •2 Технико-экономическое обоснование проекта
- •3 Разработка внемашинного и внутримашинного информационного обеспечения садд
- •3.1 Проектирование структуры бд
- •3.2 Нормализация полученных отношений
- •3.3 Анализ частных ограничений целостности
- •3.4 Создание отношений внутримашинной бд
- •3.6 Заполнение бд
- •Оператор сравнения Between
- •Синтаксис:
- •Функция Date
- •Функция DateDiff
- •Синтаксис:
- •Синтаксис:
- •3.7 Разработка запросов и отчетов
- •3.8 Создание отчетов
- •3.9 Разработка руководства пользователя
- •Библиографический список
Синтаксис:
Month(date)
В качестве даты могут быть указаны дата, функция, имя поля, содержащего дату. Если дата не указана, возвращается значение Null.
Функция Year
Возвращает номер года в указанной дате.
Синтаксис:
Year(date)
В качестве даты могут быть указаны дата, функция, имя поля, содержащего дату. Если дата не указана, возвращается значение Null.
Следующая таблица (Таблица 15) содержит примеры выражений, которые используются в вычисляемых элементах управления в формах и отчетах.
Таблица 15
Выражение |
Описание |
=Date() |
Использует функцию Date для отображения текущей даты в заданном формате; например, в кратком формате дата будет выглядеть так: дд.мм.гггг, где дд означает день (от 1 до 31), мм означает месяц (от 1 до 12), а гггг означает год (в диапазоне от 1980 до 2099). |
=DateAdd(“уууy”; -10; [Дата]) |
Результатом вычисления функции DateAdd является дата, имеющая тот же месяц и день, что и значение в поле [Дата]. Однако номер года в новой дате на 10 меньше, чем в [Дата]. Например, если в поле [Дата] указано значение 23.07.2003, то результатом вычисления функции DateAdd является дата 23.07.1993 |
=DateDiff(“d”; [ДатаРазмещения]; [ДатаИсполнения]) |
Результатом вычисления функции DateDiff является количество дней между датами, указанными в полях «ДатаРазмещения» и «ДатаИсполнения». Если, например, в поле [ДатаРазмещения] указана дата 13.07.1993, а в поле [ДатаИсполнения] – дата 23.07.1993, то значение функции DateDiff равно 10. |
= Year(date) |
Возвращает номер года в указанной дате. Например, если поле [дата] содержит значение 14.02.2006, то в результате вычислений Year([дата])=2006. |
=Month(date)
|
Возвращает число в интервале от 1 до12; позволяет определить номер месяца года в указанной дате. Например, если поле [дата] содержит значение 24.06.2004, то в результате вычислений Month([дата])=06. |
= Day(date)
|
Возвращает целое число в интервале между 1 и 31; позволяет выделить номер дня месяца в указанной дате. Например, если поле [дата] содержит значение 21.04.2004, то в результате вычислений Day ([дата])=21. |
Функция DCount
Функция Dcount используется для определения количества записей, отвечающих заданному условию и находящихся в некотором подмножестве записей – домене (таблице или запросе). Функция применяется в макросах, запросах, вычисляемых полях форм.
Синтаксис:
DCount(Expr, Domain, Criteria)
Функция имеет следующие аргументы.
Expr - строка символов, идентифицирующая поле, в котором нужно подсчитать записи, удовлетворяющие заданному условию. В качестве нее может быть использовано имя поля таблицы или запроса, а также выражение, производящее вычисления с данными в этом поле. В строку могут быть включены имя поля, константа или функция. Функция может быть встроенной или самостоятельно определенной пользователем средствами VBA.
Domain – строка символов, идентифицирующая таблицу или запрос, в котором находится поле Expr.
Criteria - выражение, определяющее условие отбора данных. Если criteria отсутствует, функция DCount производит подсчет количества строк заданного поля. В выражение criteria может включаться только поле, которое входит в таблицу с именем, указанным как domain. В противном случае функция DCount возвращает Null.
Например, запись =DCount("[ФИО]", "Сотрудник", "[пол] = 'жен'") означает, что необходимо определить, сколько раз в поле [ФИО] таблицы СОТРУДНИК встречаются записи, для которых в поле [пол] этой же таблицы (СОТРУДНИК) указано значение 'жен'. Другими словами, с помощью функции DCount подсчитывается количество женщин, работающих в организации.
Функция Count
Вычисляет количество непустых записей, возвращаемых запросом.
Синтаксис:
Count(Expr), где Expr – имя поля, в котором определяется количество непустых записей.
Группировка записей
Во многих организациях создаются разнообразные отчеты, содержащие сведения о проделанной работе. При наличии базы данных подготовка данных для отчетов может быть автоматизирована. Большие возможности для расчета итоговых значений открывает использование статистических функций. Их применение тесно связано с использованием групповых операций в запросе. Групповые операции позволяют задать группы, для которых выполняются вычисления. Рассмотрим пример создания запроса, содержащего итоговые данные о количестве и сумме заказов клиентов некоторой кондитерской фабрики. Эта информация может быть использована руководством организации при рассмотрении вопроса о возможности предоставления скидок некоторым клиентам.
База данных фабрики среди прочих содержит таблицы «Клиент», «Товар», «Заказ», название которых соответствует их содержанию. Для построения первого из рассмотренных запросов использованы связанные между собой таблицы «Клиент» и «Заказ». На бланке запроса (Рисунок 9) присутствуют поля, содержащие требуемую информацию. Запрос предполагает группирование записей, относящихся к каждому из клиентов, определение количества записей в каждой из образовавшихся груп, (функция Count), подсчет общей суммы заказов в пределах каждой группы (функция Sum). Результат выполнения запроса показан на Рисунок 10.
В случае, если организации потребуются итоговые сведения о сбыте товаров, бланк запроса (Рисунок 11) и результаты его выполнения могут выглядеть следующим образом (Рисунок 12).
Рисунок 9- Окно запроса на выборку
Рисунок 10 - Результат выполнения запроса на выборку
Рисунок 11 – Окно запроса о сбыте товаров
Рисунок 12 – Результаты запроса о сбыте товаров
Перечисленные функции можно использовать для расчета выслуги/стажа для работника, работающего в какой-либо организации. Экранная форма для заполнения личных данных представлена на Рисунок 13.
Рисунок 13 – Форма «Сотрудники»
Экранная форма, представляющая результаты расчета стажа работы, показана на Рисунок 14.
Рисунок 14 – Окно с результатом расчета стажа сотрудника
Для выполнения расчетов в приведенном примере использованы несколько вычисляемых полей, содержащих промежуточные результаты. Они не отображаются на экранной форме. Для этого свойство вычисляемого поля Вывод на экран на вкладке Макет установлено в Нет.
Порядок выполнения расчетов:
1 Создано вычисляемое поле Лет, содержащее количество лет выслуги:
Лет =DateDiff("yyyy";[Дата поступления];Date())
Возвращает число лет в интервале между датой поступления и текущей датой.
2 Для подсчета количества месяцев к дате поступления добавлено вычисленное количество лет. Создано скрытое поле Поле1:
Поле1=DateAdd("yyyy"; DateDiff("yyyy";[Дата поступления];Date());[Дата поступления])
3 Вычислено количество месяцев:
Месяцев = DateDiff("m";[Поле1];Date())
Аналогично произведено вычисление числа дней для поля Дней.
Необходимо учесть, что некоторые вычисленные значения могут быть отрицательными. В этом случае для коррекции расчетов необходимо использовать функцию IIf с аргументами (логическое выражение; значение или выражение, при котором логическое выражение выполняется; значение или выражение, при котором логическое выражение не выполняется).
Например, если количество месяцев оказалось меньше, чем 0, необходимо пересчитать количество лет. В этом случае в поле Лет помещается выражение следующего вида:
=IIf(DateDiff("m"; [Поле1]; Date())<0; DateDiff("yyyy"; [Дата поступления]; Date())-1; DateDiff("yyyy"; [Дата поступления]; Date())
В следующем примере (Рисунок 15, Рисунок 16) показано применение функций Day, Month, Year и Len.
Рисунок 15 – Окно формы в режиме конструктора с применением различных функций
Рисунок 16 – Окно формы «Справка» с результатами вычислений