Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Встроенные функции access

Функции

Функция так же, как и идентификатор, используется для возвращения значения в точку вызова. Значение, возвращаемое функцией, определяется ее типом, например функция NOW () возвращает дату и время часов компьютера. Синтаксически функция выделяется круглыми скобками, следующими сразу же за ее идентификатором. Многие функции требуют наличия аргументов, которые записываются в этих скобках через запятую при обращении к функции. Функции можно использовать для создания нового выражения или функции. (Об использовании функций рассказывается в гл. 13.)

Встроенные в Access функции можно сгруппировать по следующим категориям (забегая вперед, скажем, что именно так они сгруппированы в специальном инструменте, помогающем правильно создавать сложные выражения, который называется Построитель выражений (Expression Builder)).

  • Функции работы с массивами — используются для определения границ размерностей массивов при программировании на VBA.
  • Функции преобразования типов данных — применяются для преобразования одного типа данных в другой. Например, для преобразования числа в строку служит функция str (), а обратно — функция val ().
  • С помощью функций работы с объектами баз данных осуществляется обращение к объектам баз данных: таблицам, запросам, формам, отчетам, макросам и модулям. Например, функция CurrentDB () возвращает ссылку на объект Database, с которым работает Access в данный момент. (Для более подробной информации о работе с этими функциями обратитесь к справочной системе Access или к гл. 13.)
  • Функции даты и времени — служат для проведения операций со значениями даты и времени. Например, функция DateDiff О вычисляет промежуток между двумя датами, а функция Date () возвращает значение текущей даты.
  • Функции динамического обмена данными (DDE) между приложениями Windows и функции работы с использованием технологии связывания и внедрения (OLE) (например, DDE() и DDESendO) — используются для перемещения данных из одного приложения в другое и обратно. Для приложений, поддерживающих технологию OLE, в частности Microsoft Office, особенно важными являются функции GetObject () и CreateObject (), с помощью которых начинается основная работа с любыми объектами (см. разд. «Интеграция Access 2002 с другими компонентами Office 2002″гл. 15).
  • Статистические функции SQL — используются чаще всего для многотабличных запросов как источника данных для форм. Статистические функции SQL возвращают статистические данные из записей, выбранных по запросу. Эти функции нельзя использовать в макросах или вызывать их из программ VBA иначе, как внутри выражений в кавычках, используемых в инструкциях SQL для создания объектов Recordset.

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

Примером статистической функции SQL является stDev(), а соответствующей ей статистической функцией по подмножеству записей— DStDevf). Обе они вычисляют стандартное отклонение для заданного множества значений.

  • Функции обработки ошибок — используются, как следует из названия, для отслеживания ошибок. Например, функция Error () выводит сообщение об ошибке по ее номеру. Наличие таких функций в выражении можно считать признаком хорошего тона, поскольку используемое выражение, хоть и приводит к ошибочному результату, но продолжает вести себя корректно, не забыв предупредить пользователя.
  • Финансовые функции — идентичны своим двойникам в Microsoft Excel и используют те же аргументы. Например, функция Rate () возвращает процентную ставку, необходимую для получения путем регулярных взносов указанной суммы на базе имеющейся за определенный срок.
  • Функции общего назначения — используются в основном при программировании на VBA для извлечения вспомогательной информации и управления ходом выполнения программы. Например, функция Commando служит для извлечения аргументов командной строки при выполнении программы, написанной на VBA.
  • Функции сообщений и ввода/вывода — позволяют выводить сообщения или вводить новые данные, а также устанавливать различные параметры ввода/вывода. Иллюстрацией могут служить функция ввода данных inputBox () или функция проверки существования каталога или файла Dir ().
  • Функции проверки — особая группа функций, отвечающих на вопрос «является ли аргумент. ?». Например, IsNumericf) — возвращает True, если аргумент имеет один из числовых типов данных, и False — в противном случае; IsObject() — возвращает True, если аргумент— объект OLE Automation, и False — в противном случае.
  • Функции ветвления — используются для выбора из нескольких альтернатив. На них стоит остановиться подробнее.
    • IIf (Expr, Truepart, Falsepart) — возвращает значение выражения Truepart, если значение выражения Ехрг равно True, или значение выражения Falsepart, если значение Ехрг есть False. Особо важно то, что вне зависимости от значения выражения Ехрг, будут вычислены как выражение Truepart, так и Falsepart. Следует быть очень внимательным к возможным побочным эффектам, связанным с этой особенностью функции Ilf <). Отметим, что здесь, как и в большинстве функций, в качестве каждого из аргументов стоит выражение, которое, в свою очередь, тоже может быть сложным выражением.
    • Функция Choose () возвращает значение, соответствующее заданному положению в списке значений. Switch () возвращает значение, связанное с первым из последовательности выражением, имеющим значение True.
    • Функции Choose () и Switch() похожи на команду Select Case из VBA и других диалектов Basic, которая не раз встретится вам в гл. 13.
  • Математические и тригонометрические функции — используются для выполнения простых (и неслишком) математических операций, например вычисления логарифма Log () или синуса числа Sin ().
  • Текстовые функции — позволяют проводить различные операции над строками. Например, функция Trim() возвращает строку, заданную в качестве аргумента, без начальных и заключительных пробелов.
  • Еще раз обратим внимание, что описание всех функций (а их более 100) с подробными примерами выходит за рамки этой книги, тем более что справочная система Access и VBA предлагает развернутое изложение использования каждой функции, сопровождаемое примерами. При необходимости применения в дальнейшем изложении какой-либо незнакомой функции мы будем стараться кратко описать ее назначение и применение.

    Лекция 6 Тема: Запросы. Вычисления и групповые операциию

    6.1. Вычисляемые поля.

    6.2. Создание выражений с помощью Построителя выражений.

    6.3. Обзор встроенных функций СУБД MS Access.

    6.4. Итоговые запросы.

    6.5. Перекрестные запросы.

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

    В QBE СУБД MS Access такие возможности предоставляются через вычисляемые поля и групповые операции.

    6.1. Вычисляемые поля

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

    Стоимость: Товары! Цена * Количество * (1-Скидка)

    КоличествоМужчин: Sum(IIf(Пол = «м»; 1; 0))

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

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

    Стоимость: Цена*[Количество товара]

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

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

    Для построения сложных выражений в СУБД MS Access входит утилита, называемая Построитель выражений.

    6.2. Создание выражений с помощью Построителя выражений

    Построитель выражений можно запустить щелкнув по клавише Построить на панели инструментов Конструктор запросов или выбрав в контекстном меню поля бланка запроса QBE команду меню Построить….

    Рис.6.1. Диалоговое окно Построитель выражений

    Рис.6.2. Диалоговое окно Построителя выражений
    со сформированным выражением

    6.3. Обзор встроенных функций СУБД MS Access

    СУБД MS Access содержит более 100 встроенных функций (рис.6.3), которые можно использовать при формировании вычисляемого поля или при задании условия отбора.

    Рис.6.3. Диалоговое окно Построителя выражений
    со списком встроенных функций

    Все встроенные функции в Построителе выражений сгруппированы по функциональному назначению.

    При выборе функции в правом окне построителя, в нижней области окна Построителя выражений отображается синтаксис этой функции. Для более детальной справки необходимо щелкнуть по клавише Справка.

    Читать еще:  Внешний вид офиса

    Обзор всех встроенных функций выходит за рамки лекции, поэтому рассмотрим наиболее используемые.

    Таблица 6.1

    Функции категории Дата/время

    Возвращает значение дня месяца от 1 до 31

    Возвращает значение месяца от 1 до 12

    Возвращает название месяца соответствующего номеру месяца: 1 – январь, 2 – февраль, и т. д. Если значение аргумента флаг Истина, то функция возвращает аббревиатуру месяца: 1 – янв, 2 – фев и т. д.

    Возвращает значение года от 100 до 9999

    Если аргумент число не указан, возвращает значение дня недели от 1 (воскресенье) до 7 (суббота). Если аргумент число имеет значение 0, то возвращает значение дня недели от 1 (понедельник) до 7 (воскресенье)

    Возвращает целое число от 0 од 23, представляющее значение часа

    Возвращает числовое значение в зависимости от значения аргумента интервал:

    «q» – квартал (от 1 до 4);

    «m» – месяц (от 1 до 12);

    «yyyy» – год (от 100 до 9999);

    «ww» – неделя (от 1 до 53);

    и т. п. (см. справку по функции).

    Возвращает текущую системную дату

    Функции категории Проверка

    Возвращает значение Истина если значение переменной (значение поля в источнике данных) равно Null

    Возвращает значение Истина если значение переменной (значение поля в источнике данных) имеет один из числовых типов данных

    Функции категории Управление

    IIf(условие; выр1; выр2)

    Возвращает значение выражения выр1 если значение аргумента условие Истина и возвращает значение выражения выр2 если значение аргумента условие Ложь. Данная функция аналогична функции ЕСЛИ в MS Excel.

    Продолжение таблицы 6.1

    Функции категории Текстовые

    Возвращает n левых символов аргумента текст

    Возвращает n правых символов аргумента текст

    Mid(текст; нач_поз[; n])

    Возвращает n символов начиная с позиции нач_поз аргумента текст. Если аргумент n не указан, то возвращает все символы до конца строки начиная с позиции нач_поз аргумента текст.

    Возвращает количество символов (длину строки) в аргументе текст

    Возвращает строковое значение аргумента текст без начальных пробелов

    Возвращает строковое значение аргумента текст без заключительных пробелов

    Возвращает строковое значение аргумента текст без начальных и заключительных пробелов

    Возвращает строковое значение аргумента число

    Возвращает значение аргумента переменная в формате заданным аргументом формат

    6.3. Итоговые запросы

    При анализе данных очень часто интересуют не отдельные записи, а итоговые значения по группам данных, например:

    — количество сделок с Партнерами за определенный промежуток времени;

    — средний объем продаж по каждому месяцу за предыдущий год.

    Ответы на такие вопросы дает итоговый запрос.

    Для вычисления итоговых значений необходимо нажать кнопку Групповые операции на панели инструментов Конструктор запросов, чтобы в бланке QBE появилась строка Групповая операция (после имени таблицы).

    По умолчанию для каждого поля, занесенного в бланк запроса, устанавливается значение Группировка (итоги не подводятся).

    Для подведения итогов необходимо заменить установку Группировка на конкретную итоговую функцию. В СУБД MS Access предусмотрено 9 функций (табл. 6.2), обеспечивающих выполнение групповых операций.

    Таблица 6.2

    Функции категории Статистические

    Возвращает сумму набора значений

    Возвращает среднее арифметическое набора значений

    Возвращает наименьшее значение из набора значений

    Возвращает наибольшее значение из набора значений

    Возвращает количество записей в наборе значений отличных от Null

    Возвращает первое значение поля в группе

    Возвращает последнее значение поля в группе

    Возвращает среднеквадратичное отклонение набора значений

    Возвращает дисперсию набора значений

    В раскрывающемся списке строки Групповая операция имеется установка Выражение. Данная установка применяется, когда в выражении (строка Поле) используется несколько итоговых функций.

    В раскрывающемся списке строки Групповая операция имеется установка Условие. Данная установка применяется, когда в строке Условие отбора записано условие выборки, но данные столбца (поля) не должны участвовать в групповой операции.

    Для решения более сложных статистических задач в СУБД MS Access предусмотрен специальный тип запроса – перекрестный запросов.

    6.4. Перекрестные запросы

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

    Для построения перекрестного запроса достаточно трех полей базового источника. По повторяющимся значениям одного поля формируются названия заголовков строк итоговой (сводной) таблицы (рис.6.4). По повторяющимся значениям другого поля формируются названия заголовков столбцов итоговой (сводной) таблицы. Результаты статистической обработки по третьему полю отображаются в ячейках сводной таблицы (область значений). Пример перекрестного запроса в режиме конструктора представлен на рис.6.5, а результаты выполнения запроса на рис. 6.6.

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

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

    Программирование на VBA Access 2003 – Встроенные функции

    Пришло время поговорить и о программировании на VBA Access, так как мы с Вами рассматривали уже достаточно много примеров реализации тех или иных задач в Access 2003, но мы не затрагивали основы VBA, и сегодня мы начнем со встроенных функций. Рассмотрим часто используемые функции и конечно разберем примеры их использования, для лучшего освоения языка программирования VBA для Access.

    Если говорить о том, что именно мы уже рассматривали в Access 2003 то, например это Загрузка данных из текстового файла на VBA Access или Выгрузка данных из Access в шаблон Word и Excel. А сегодня мы будем рассматривать именно основы VBA и как уже сказалось выше встроенные функции.

    Встроенные функции VBA Access

    Если Вы уже немного знакомы с какими-нибудь языками программирования, например, Вы, знаете основы JavaScript или основы Visual Basic, то Вы должны понимать что такое встроенные функции, а если нет то я могу привести свое определение данного термина.

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

    И так хватит теории, давайте приступим к рассмотрению встроенных функций VBA Access.

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

    Функция msgbox – простая функция для отображения сообщения на экране в виде диалогового окна.

    И теперь сохраните, откройте форму и нажмите на нашу кнопку и у Вас отобразится это сообщение:

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

    Примечание! Далее я буду писать все примеры без указания начала процедуры и ее конца т.е. без Private Sub Кнопка1_Click() и End Sub, подразумевается что все примеры мы будем писать в обработчике одной кнопки, Вы просто вставляйте код ниже между этим строками.

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

    Функция Mid – данная функция относится к строковым функциям Access и она вырезает указанное число знаков строки. Имеет три параметра, первый это собственно сама строка, второй это начальная позиция, и третий это число символов.

    Здесь мы просто указали строку, из которой необходимо вырезать, и с какого символа нужно начинать, третий параметр мы не указывали (поэтому вырезалось все, начиная с 7 символа), а если захотели, то код был бы таким (абсолютно равнозначный):

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

    Читать еще:  Скачать майкрософт офис c ключом

    И результат будет таким же, как и предыдущем примере.

    Функция LCase – строковая функция vba которая преобразует все буквы строки в строчные. Для закрепления давайте рассмотрим все на том же примере, только сейчас обрамим наше выражение еще и функцией LCase.

    И результат будет таким же, как и раньше, но все заглавные буквы станут строчными, в нашем случае это первая буква «Н», результат:

    Функции left и right – это строковые функции vba, которые вырезают указанное количеств символов слева и справа соответственно. Принцип такой же, как и, например, в Excel функциях левсимв и правсимв.

    Функция right работает аналогично, только вырезает символы справа.

    Функции date, time, now – это функции, с помощью которых можно получить текущую дату и время. По названию я думаю понятно, какая функция для чего нужна, если нет то date текущая дата, time текущее время, now текущая дата и время. Данные функции запускаются без параметров.

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

    Функции hour, minute, second – эти функции возвращают соответственно часы, минуты и секунды. Принимают один параметр это текущее время.

    Функция isnull – проверяет значение на NULL.

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

    Функция Nz — данная функция возвращает значение не NULL. Принимает один обязательный параметр с типом variant и один не обязательный. Она работает следующим образом, если входящий параметр NULL она преобразует его в другое значение, для предотвращения использования NULL значений в выражении. Также если указан второй параметр, то в случае если первый параметр NULL то она вернет его, т.е. второй параметр.

    Пример предотвращения NULL значения в выражении:

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

    Пример возвращения значения, если входящий параметр равен NULL:

    Здесь просто мы смотрим если первый параметр NULL, то возвращаем второй в виде строки.

    Приведу несколько функций для работы с числами.

    Функции Int, Fix, Abs – функции которые работают с числами, все они принимают один параметр и делают следующее:

    • Int – принимает значение типа Double и возвращает число меньшее или равное исходному числу, в случае если число отрицательное;
    • Fix — принимает значение типа Double и возвращает число большее или равное исходному числу, в случае если число отрицательное;
    • Abs – возвращает абсолютное значение числа переданное во входящем параметре.

    Примечание! Для перевода на новую строку мы использовали константу vbNewLine.

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

    Встроенные функции access

    На этом шаге будет рассмотрено создание вычисляемых полей.

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

    С другой стороны, при создании вычисляемого поля на основе содержимого текстовых полей, как правило, используется операция объединения текстовых значений, которая называется конкатенацией. В таблице 1 приведены операторы, которые используются в Access при построении выражений:

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


    Рис. 1. Построитель выражений

    С ее помощью можно выполнять различные вычисления с использованием данных, находящихся в БД — полей таблиц, запросов, форм и отчетов. Все перечисленные объекты БД находятся, соответственно, в папках Таблицы, Запросы, Forms и Reports в левой части Построителя.

    Чтобы выбрать требуемый объект, например, таблицу, необходимо выполнить двойной щелчок на папке Таблицы, в результате чего раскроется список всех таблиц БД. После выбора нужной таблицы (или другого объекта) в средней части Построителя отображается список ее полей, значения которых можно включить в создаваемое выражение. Для этого необходимо выбрать требуемое поле и нажать в окне Построителя кнопку Вставить.

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

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


    Рис. 2. Построитель выражений. Встроенные функции


    Рис. 3. Построитель выражений. Текстовая функция Left

    Например, необходимо в запросе ПреподавателиПредметы вместо поля Фамилия добавитъ вычисляемое поле, в котором содержались бы фамилия и инициалы преподавателя.

    Для этого необходимо открыть запрос в режиме конструктора. Затем установить курсор в строку Поле первого столбца, т.е. в поле Фамилия. После этого необходимо воспользоваться кнопкой Построить , в результате чего будет отображено окно Построитель выражений (рис. 1).

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

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

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

    Фамилия & Символ Пробела & Инициал имени & Символ точки & Инициал отчества & Символ точки.

    Все текстовые символы указываются в двойных кавычках, поэтому структура выражения примет такой вид:

    Фамилия & » » & Инициал имени & «.» & Инициал отчества & «.».

    Таким образом, начало выражения будет следующим:

    Фамилия & » » &

    Для работы с текстовыми значениями используются функции категории Текстовые. Чтобы получить инициал имени, необходимо воспользоваться одной из функций данной категории, а именно — функцией Lеft, которая возвращает первые n символов указанной строки.

    Чтобы добавить функцию в выражение, необходимо дважды щелкнуть на папке Функции и выбрать после этого раздел Встроенные функции (рис. 2).

    Затем во втором столбце необходимо выбрать требуемую категорию, в данном случае Текстовые, и после этого в третьем столбце выбрать нужную функцию, т.е. Left (рис. 3).

    После того как функция выбрана, необходимо установить курсор в то место выражения, куда она должна быть вставлена, и нажать кнопку Вставить в окне Построителя выражений. В результате этих действий в выражение будет добавлен шаблон функции Left:

    Left («stringexpr»; «n») ,

    в котором необходимо указать значения требуемых параметров. В частности, вместо stringexpr нужно указать поле Имя, а вместо n — количество символов, которые необходимо получить из строки, т.е. 1. Таким образом, текущее выражение примет вид:

    Необходимо отметить, что для поля Имя не указывалось название таблицы Преподаватели, так как оно было выбрано ранее в строке Имя таблицы окна конструктора запросов. С другой стороны, чтобы добавить в выражение имя поля конкретной таблицы, можно раскрыть папку Таблицы, и выбрать в таблице Преподаватели поле Имя (рис. 4), после чего установить курсор в соответствующее место выражения и нажать кнопку Вставить.


    Рис. 4. Построитель выражений. Поле Имя таблицы Преподаватели

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

    [Имя таблщы] ! [Название поля]

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

    Читать еще:  Офис 2020 скачать торрент

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

    Названия полей запроса формируются автоматически. Для полей таблиц названия совпадают с названиями соответствующих полей запроса (например, поле Название). С другой стороны, названия вычисляемых полей формируются автоматически; Выражение1, Выражение2 и т. д. Очевидно, что такие названия не являются информативными.

    Чтобы установить подпись для поля в таблице или запросе, необходимо в режиме конструктора установить курсор в требуемое поле (в частности, в поле Выражение1) и нажать кнопку Свойства . После этого в диалоговом окне Свойства поля можно на вкладке Общие указать в строке Подпись то название поля, которое будет использоваться вместо исходного в режиме редактирования запроса (или таблицы), а также в формах и отчетах. В частности, для вычисляемого поля Выражение1 можно указать подпись ФИО (рис. 5).


    Рис. 5. Диалоговое окно Свойства поля

    Таким образом, был создан и выполнен запрос на выборку с использованием вычисляемого поля (рис. 6).


    Рис. 6. Запрос на выборку с вычисляемым полем ФИО

    Создание запроса с вычисляемым полем можно увидеть здесь, а взять клип здесь.

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

    Предыдущий шаг Содержание Следующий шаг

    Studhelper IT

    Разработка приложений, переводы книг по программированию

    Страницы

    четверг, 27 августа 2015 г.

    Пользовательские функции в Access Часть 1

    Пакеты прикладных программ офисного назначения и программирование – задание 1
    В этом посте, мои дорогие читатели, я дам вам несколько советов, как создавать и применять пользовательские функции в Access, а также как передавать разное число аргументов в функцию и использовать массивы. Язык VBA.
    Задание
    — Создать новую базу данных, а в ней – таблицу с записями приведенной структуры:

    Предприятие – название предприятия, Продукция – название продукции, Вып_1, … Вып_6 – данные о выпуске продукции (целые числа) по месяцам полугодия, выраженные в одной и той же единице измерения.
    — Заполнить таблицу данными (примерно 15 – 20 записей). Данные выбирать произвольно. Данные должны демонстрировать различные варианты выполнения последующего запроса, для чего их в процессе работы нужно корректировать.
    — Создать общий модуль, а в нем – пользовательскую функцию для вычисления — **** Варианты задания **** — из массива числовых переменных. В функции использовать массив и цикл.
    — Создать запрос для получения справки следующего вида:

    В запросе должно присутствовать обращение к созданной пользовательской функции.
    — Выполнить запрос.
    Варианты:

    0. Максимальное значение. Запрос — максимальный месячный выпуск
    1. Характер изменения значений в массиве переменных (от первого к последнему). Возможные варианты : «Рост», «Падение», «Колебание», «Постоянен». Запрос – Динамика изменения выпуска.
    2. Номера минимальных значений. Если их несколько, вернуть строкой через пробел. Запрос – номера месяцев с минимальным выпуском.
    3. Номера элементов, содержащих значения больше среднего по массиву. Вернуть строкой. Запрос — Номера месяцев с выпуском больше среднего.
    4. Номера элементов, содержащих значения меньше среднего по массиву. Вернуть строкой. Запрос — Номера месяцев с выпуском меньше среднего.
    5. Количество элементов, содержащих значения больше среднего по массиву. Запрос — Число месяцев с выпуском больше среднего.
    6. Максимальное и минимальное значение из массива элементов (в виде текста). Запрос — Максим-й и миним-й месячный выпуск.
    7. Разность максимального и минимального значений из массива числовых переменных. Запрос — Разность максим-го и миним-го выпусков.
    8. Количество максимальных значений в массиве (предполагается, что их несколько). Запрос — Число месяцев с наибольшим выпуском.
    9. Номера максимальных значений. Запрос — Номера месяцев с максимальным выпуском. Нам нужно создать функцию, которая принимала бы список аргументов, обрабатывала их и возвращала результат. Список параметров функции может быть постоянным и переменным.
    Постоянное число параметров – когда функция принимает определенное число, которое прописано в программе. То есть в нашем случае — это шесть значений выпуска. Семь значений, или пять, или все выпуски за год уже будет не посчитать. Думаю, что в этом задании как раз и предусматривается подобный вариант.
    Но на всякий случай рассмотрим функцию с переменным числом параметром. Она гораздо удобнее в работе и позволяет расширить возможности программы. В этом случае в функцию передается число аргументов, указанное пользователем, и массив значений. То есть можно посчитать и за квартал, и за полугодие.
    Сделаем оба способа, и вы поймете разницу.
    Итак, создаем базу данных в Access. Создаем в ней таблицу на восемь полей. Два поля – текстовые, остальные можно сделать целыми. Придумываем предприятия и продукцию, заполняем числовые данные. Я не описываю все подробно. Если уж с вас спрашивают программирование VBA, то создание баз не является трудностью, скорее всего.
    Для создания функции переходим в редактор Visual Basic. На вкладке «Создание» в разделе «Другие» из раскрывающегося списка «Макрос» выбираем пункт «Модуль». Открывается редактор кода VBA. Или Alt+F11.
    Функцию можно вставить с помощью меню Insert->Procedure или написать прямо в модуле.

    Обратите внимание, выбираем именно функцию (Function), а не процедуру, так как нужно получить возвращаемое значение.
    Создаем функцию для расчета максимального выпуска (0 вариант).
    1 способ
    Принимаем шесть аргументов, заполняем массив и ищем максимум.
    Текст функции:
    Public Function MaxV(v1 As Integer, v2 As Integer, v3 As Integer, v4 As Integer, v5 As Integer, v6 As Integer) As Integer
    Dim prod(1 To 6) As Integer ‘массив значений выпуска за 6 месяцев
    Dim i As Integer ‘счетчик цикла
    Dim max As Integer ‘максимальное значение выпуска
    ‘заполняем массив
    prod(1) = v1
    prod(2) = v2
    prod(3) = v3
    prod(4) = v4
    prod(5) = v5
    prod(6) = v6
    ‘определяем максимум — 1 элемент массива
    max = prod(1)
    For i = 2 To 6
    ‘если элемент массива больше максимума
    If prod(i) > max Then
    max = prod(i) ‘новое значение максимума
    End If
    Next i
    MaxV = max ‘возвращаем результат
    End Function Теперь идем в конструктор запросов и создаем там запрос, добавляем в него поля Предприятие и Продукция. На третьем поле нажимаем правую кнопку мыши и выбираем пункт меню «Построить». Открывается Построитель выражений. Слева, в разделе «Элементы выражений» раскрываем список функций и выбираем название нашей базы данных – тест. Появляются доступные модули и созданные пользовательские функции. Выбираем нашу функцию – MaxV, два раза щелкаем на ней.

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

    Нажимаем ОК, меняем название поля с «Выражение1» на что-нибудь подходящее и запускаем запрос.
    Второй способ
    Сейчас создадим второй вариант этой функции, назовем его MaxV1.
    Public Function MaxV1(ByVal arg As Integer, ParamArray Prod()) As Integer
    Dim i As Integer ‘счетчик цикла
    Dim max As Integer ‘максимальное значение выпуска
    ‘определяем максимум — 1 элемент массива
    max = Prod(0)
    For i = 1 To arg — 2
    ‘если элемент массива больше максимума
    If Prod(i) > max Then
    max = Prod(i) ‘новое значение максимума
    End If
    Next i
    MaxV1 = max ‘возвращаем результат
    End Function Функция получает аргументы – число аргументов (в данном случае, это 6 значений выпуска плюс первый аргумент – всего 7) и массив аргументов ParamArray.
    Нужно иметь в виду, что нумерация элементов в этом массиве начинается с 0, поэтому первый элемент у нас Prod(0), а последний – Prod(arg-2).
    Преимущества этого способа — мы не заполняем вручную массив, он передается по ссылке, а также можно рассчитывать не только выпуски за 6 месяцев, но и за другое число. Но при этом при создании запроса необходимо менять первый аргумент функции, зато код функции остается прежним.
    Вот как выглядит в данном случае выражение в третьем поле запроса:

    Можете выбрать вариант, который вам понятней или больше нравится.

    Еще по этому заданию

    Пользовательские функции в Access — варианты 1-4
    Пользовательские функции в Access — варианты 5-9

    Ссылка на основную публикацию
    Adblock
    detector