Аксесс функция: Добавление функций в выражения Access

Добавление функций в выражения Access

Access 2013 Еще…Меньше

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

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

Во-первых, вот несколько основных данных об использовании функций:

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

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

  • Аргументы функции могут быть идентификаторами, константами или другими функциями. Эти ингредиенты можно объединить с помощью стандартных математических операторов (таких как +, -, * или /) или операторов сравнения (например, <, > или =).

  • Функции принимают любые сведения, которые вы предоставляете в качестве аргументов, выполняют код за кадром, а затем возвращают значение в точное место, где вы введите функцию. Другими словами, вы можете быть программистом, не занимаясь программированием.

Звук пугает? Это не совсем так. Может быть, один или два примера помогут вам.

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

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

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

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

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

Здесь выражение начинается со строки константы (черной).

  • Амперанда (красным цветом) — это оператор конкативации, который используется для с объединения строк.

  • Функция Left (зеленая) имеет два аргумента:

    • Идентификатор поля (оранжевый) и

    • org/ListItem»>

      Константа с integer (в черном цвете). В этом случае нам нужны два самых левых символа поля, поэтому введите 2.

Если поле ProductCode содержало «CD22035», результатом этого выражения будет «Prefix: CD».



  • Дополнительные сведения о том, где вводить выражения, см. в сборке выражений.

  • Список всех доступных функций Access можно найти на веб-сайте MSDN.

MS Access — встроенные функции

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

функции

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

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

  • Вы также можете использовать функции в выражении при создании вычисляемого поля или использовать функции внутри формы или элементов управления отчетом. Вы можете использовать функции даже в макросах.

  • Функции могут быть довольно простыми, не требующими вызова другой информации, или просто ссылаться на одно поле из таблицы или запроса.

  • С другой стороны, они также могут быть довольно сложными, с несколькими аргументами, ссылками на поля и даже другими функциями, вложенными в другую функцию.

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

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

Функции могут быть довольно простыми, не требующими вызова другой информации, или просто ссылаться на одно поле из таблицы или запроса.

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

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

Функции даты и времени

Давайте теперь поймем функции даты и времени –

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

  • Есть две очень похожие встроенные функции Time () и Now ().

  • Функция Time () возвращает только текущее системное время, а функция Now () возвращает как текущую системную дату, так и время.

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

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

Есть две очень похожие встроенные функции Time () и Now ().

Функция Time () возвращает только текущее системное время, а функция Now () возвращает как текущую системную дату, так и время.

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

Теперь давайте откроем вашу базу данных и создадим новый запрос, используя дизайн запроса, и добавим tblProjects и tblTasks.

Добавьте ProjectName из tblProjects и TaskTitle, StartDate и DueDate из tblTasks и выполните свой запрос.

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

Давайте теперь укажем критерии под StartDate.

Критерий начинается с оператора, большего, чем символ , за которым следует символ равенства, а затем функция даты .

Когда мы запустим этот запрос, все задачи будут выполнены в текущую дату или в будущем, как показано на следующем снимке экрана.

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

  • Давайте теперь скажем, что этот запрос должен быть более гибким с точки зрения дат, которые он запрашивает, начиная с этой недели.

  • У нас есть несколько разных задач, которые начались на этой неделе, и которые не отображаются в этом списке из-за наших критериев. Он смотрит на даты начала, которые равны сегодня или выше.

Давайте теперь скажем, что этот запрос должен быть более гибким с точки зрения дат, которые он запрашивает, начиная с этой недели.

У нас есть несколько разных задач, которые начались на этой неделе, и которые не отображаются в этом списке из-за наших критериев. Он смотрит на даты начала, которые равны сегодня или выше.

Если мы хотим просмотреть задачи, которые начались на этой неделе, которые еще не выполнены или должны быть выполнены сегодня, вернемся к представлению «Дизайн».

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

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

Функция DateDiff ()

Функция DateDiff () – еще одна очень популярная функция даты / времени. Функция DateDiff возвращает Variant (long), указывающий количество временных интервалов между двумя указанными датами. Другими словами, он вычисляет разницу между двумя датами, и вы выбираете интервал, по которому функция рассчитывает эту разницу.

Давайте теперь скажем, что мы хотим рассчитать возраст наших авторов. Для этого нам сначала нужно создать новый запрос и добавить таблицу авторов, а затем добавить поля FirstName, LastName и BirthDay.

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

Давайте попробуем использовать функцию DateDiff в новом поле.

Давайте назовем его Age, затем двоеточие, а затем напишем DateDiff Function.

  • Первым аргументом функции для функции DateDiff является интервал, поэтому введите «гггг».
  • Следующий аргумент функции – это первая дата, по которой мы хотим вычислить, которая в этом случае будет полем дня рождения.
  • Третий аргумент функции – какая бы ни была сегодняшняя дата.

Теперь запустите ваш запрос, и вы увидите новое поле, в котором указан возраст каждого автора.

Функция Format ()

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

настройка Описание
гггг Год
Q четверть
м Месяц
Y День года
d День
вес будний день
WW Неделю
час Час
N минут
s второй

Давайте теперь вернемся к вашему запросу и добавим в него дополнительные поля с помощью функции Format ().

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

Теперь он берет дату из поля дня рождения, 4 – месяц, а 17 – день.

Давайте добавим «mmm» и «mmmm» вместо «mmdd» в следующих полях, как на следующем скриншоте.

Запустите ваш запрос, и вы увидите результаты, как на следующем скриншоте.

В следующем поле возвращаются первые 3 символа из названия месяца для этого дня рождения, а в последнем поле вы получите полное название месяца.

Чтобы увидеть месяц, за которым следует год от дня рождения, давайте добавим «гггг», а также показано на следующем скриншоте.

Позвольте нам снова запустить ваш запрос.

Теперь вы увидите месяц с запятой, а затем год.

IIf () Функция

Функция IIf () является аббревиатурой от «Immediate If», и эта функция оценивает выражение как true или false и возвращает значение для каждого. Имеет до трех аргументов функции, все из которых являются обязательными.

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

пример

Давайте возьмем простой пример. Мы создадим новый запрос, используя дизайн запроса, добавим таблицу tblAuthors, а затем добавим следующие поля.

Теперь вы можете видеть, что у нас есть три поля – FirstName, MiddleInitial, LastName, а затем это объединенное поле, которое объединяет все три поля. Давайте запустим ваш запрос, чтобы увидеть результат этого запроса.

Теперь вы можете увидеть результат запроса, но вы также заметите, что некоторые записи не имеют среднего начального значения. Например, запись Джойса Дайера не имеет средней инициалы, но в поле FullName вы увидите период, который действительно не должен быть там. Итак, вернитесь к представлению «Дизайн». Здесь мы сцепим имя другим способом, используя функцию IIf.

Давайте напишем имя в другом поле и назовем его FullName1, а затем наберем функцию IIf.

  • Первым аргументом функции для Immediate If будет ваше выражение. В выражении мы увидим, является ли среднее начальное поле пустым или нулевым.

  • Следующий аргумент – это истинная часть. Итак, если средний инициал равен нулю, мы бы хотели отобразить FirstName и LastName.

  • Теперь для нашей ложной части – если MiddleInitial не равно NULL, то мы бы хотели отобразить FirstName, MiddleInitial и LastName.

Первым аргументом функции для Immediate If будет ваше выражение. В выражении мы увидим, является ли среднее начальное поле пустым или нулевым.

Следующий аргумент – это истинная часть. Итак, если средний инициал равен нулю, мы бы хотели отобразить FirstName и LastName.

Теперь для нашей ложной части – если MiddleInitial не равно NULL, то мы бы хотели отобразить FirstName, MiddleInitial и LastName.

Теперь давайте запустим ваш запрос, и вы увидите результаты, как на следующем скриншоте.

функций базы данных | Доступ все в одном

В этом посте мы рассмотрим функции базы данных (D-функции) и предоставим несколько примеров их использования.

Функции базы данных — чрезвычайно полезная функция MS Access. Они позволяют вам делать быстрые запросы к базе данных без необходимости писать сложный SQL или открывать наборы записей и могут помочь вам написать быстрый и эффективный код.

Все DFunctions имеют одинаковую сигнатуру выражение, таблица[ критерии] , который похож по структуре на сам SQL.

  • DLookup (поле , таблица, [критерии] ) — ищет значение в таблице или запросе.
  • DCount (поле , таблица, [критерии] ) — подсчитывает записи в таблице или запросе.
  • DSum (поле , таблица, [критерий] ) — возвращает сумму набора записей в диапазоне.
  • DMax (поле , таблица, [критерии] ) — извлекает наибольшее значение из диапазона.
  • Дмин( поле, таблица, [критерии] ) — извлекает наименьшее значение из диапазона.
  • DAvg( поле, таблица, [критерий] ) — возвращает средний набор числовых значений из диапазона.
  • DFirst (поле , таблица, [критерий] ) — возвращает первое значение из диапазона.
  • DLast (поле , таблица, [критерий] ) — возвращает последнее значение из диапазона.
 Подфункции DF()

'Эти D-функции будут использовать данные из таблицы учителей

Debug.Print DLookup("[LastName]", "tblTeachers", "[FirstName]='Anna'")
'Мы ищем значение в поле [LastName] tblTeachers.

Debug.Print DCount("*", "tblTeachers")
'Звездочка (*) означает, что мы подсчитываем все записи в таблице

Debug. Print DSum("[TotalPaid]", "tblTeachers")
'Складывает все значения из [TotalPaid]

Debug.Print DMax("[RatePerHour]", "tblTeachers")
'Возвращает наибольшее значение из [RatePerHour]

Debug.Print DMin("[RatePerHour]", "tblTeachers")
'Возвращает наименьшее значение из [RatePerHour]

Debug.Print DFirst("[LastName]", "tblTeachers", "[ZIPPostal]='98052'")
'Возвращает [LastName] первой записи, где [ZIPPostal]='98052'

Debug.Print DLast("[LastName]", "tblTeachers", "[ZIPPostal]='98052'")
'Возвращает [LastName] последней записи, где [ZIPPostal]='98052'

Конец сабвуфера
 
Gratacos Solsona
9
2980.4
13,2
11,5
Axen
Wacker

Общие проблемы

К сожалению, D-функции время от времени могут быть немного сложными. Может показаться, что вы правильно ввели необходимую информацию и трижды проверили ее, но вам возвращается ошибка. Стоит отметить, что Access делает то, о чем мы его просим, ​​и если мы получаем ошибку, это происходит потому, что мы ввели что-то неправильно. Нет, правда.

Итак, вот несколько советов по использованию D-функций:

  • Помните порядок аргументов. D-функции принимают до 3 аргументов, но они должны быть в правильном порядке. DLookup(«[LastName]», «tblTeachers», «[FirstName]=’Anna'»)
    1. 1-й аргумент – имя поля
    2. 2-й аргумент — имя таблицы
    3. 3-й аргумент – критерии

В приведенном примере LastName поле, tblTeachers — это таблица, а [FirstName]=’Anna’ — критерии.

  • Заключите имя поля в квадратные скобки. Фамилия должна быть [Фамилия].
  • Не заключайте имя таблицы в квадратные скобки. tblTeachers НЕ ДОЛЖЕН быть [tblTeachers].
  • Заключите в квадратные скобки имена полей, используемые в предложении where. [FirstName]=’Anna’ хорошо – FirstName=’Anna’ плохо.
  • Убедитесь, что при использовании условия where, которое ссылается на текстовое поле, вы заключаете значение в одинарные кавычки. В [FirstName]=’Anna’ , поскольку FirstName — это текстовое поле, мы помещаем Anna в одинарные кавычки. Если бы мы использовали переменную вместо Анны, это выглядело бы так:
    • «[FirstName]=’» & [txtFirstName] & «‘»
  • Если ваше условие where использует ссылку на числовое поле, НЕ заключайте значение в одинарные кавычки:
    • « [ID]=» и [ID]

Просто!

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

Встроенные функции Функции
Запись пользовательских функций

# Функции

Функции Microsoft Access

Существует более 100 общедоступных функций, которые можно использовать в приложении базы данных Access. Я не собираюсь перечислять их все здесь, но следующая категория функций может дать вам аппетит и уверенность в изучении других доступных функций.

? Массивы ? Общий
? Преобразования ? Осмотр
? База данных ? Математика
? Дата/Время ? Сообщения
? Совокупность доменов ? Ход программы
? Обработка ошибок ? Совокупность SQL
? Финансовый ? Текст

 

 

 

 

 

 

Вышеуказанные категории можно найти с помощью Expression Builder Tool (сочетание клавиш: Ctrl + F2 ) и они отображаются в представлении средней панели (как показано ниже):

4 Следующие три Функции являются типичными примерами вычислений в Access, как правило, в запросе, форме или отчете:

 


Функция IIf

Синтаксис: IIf (условие, значение_если_истина, значение_если_ложь)

Где условие — это значение, которое вы хотите проверить, value_if_true — это значение, которое возвращается, если условие оценивается как TRUE, а value_if_false — это значение, которое возвращается, если условие оценивается как FALSE. .

Примером может быть пометка описательной части на основе поля [Дата счета-фактуры] либо теперь « к оплате », либо по-прежнему « текущий » на основе стандарта [Условия] клиента по сравнению с текущей функцией Date (еще одна функция доступа).

В запросе это будет выглядеть примерно так:

Статус: IIf (([Дата счета] + [Условия]) <Дата, «Срок», «Текущий»)

В текстовом поле формы или отчета элемент управления, то же самое будет выглядеть так:

= IIf ( ( [Дата счета-фактуры] + [Условия]) < Дата , «Срок», «Текущий»)

 


Функция DLookup

Синтаксис DLookup ( FieldName , TableName , Criteria )

Где FieldName — это поле, вычисление, элемент управления в форме или функция, которые вы хотите вернуть, TableName — это набор записей. Это может быть таблица или имя запроса, а Criteria является необязательным и служит предложением WHERE для применения к TableName .

Пример может использоваться для поиска [Условия] для клиента на основе его [идентификатора клиента] в таблице [tbl_Customers] .

В запросе это будет выглядеть примерно так:

Термины (дни) : DLookup («[Термины]»,   «[tbl_Customers]», «[Customer_ID] = 123»)

Этот тип функции используется для среда без отношений, в которой нет общей ссылки на исходную таблицу (или запрос).

 


Функция DateAdd

Синтаксис: DateAdd (интервал, число, дата)

Где интервал — это интервал времени/даты, который вы хотите добавить, число — это количество интервалов, которые вы хотите добавить, а дата — это дата, к которой должен быть добавлен интервал.

Примером может быть добавление 3 месяцев к полю [Дата заказа], используя «m» , который представляет интервал для месяца, 3 представляет количество месяцев для добавления и [Дата заказа] является полем это расчет.

В запросе это будет выглядеть примерно так:

Дата отчета: DateAdd («m», 3, [Дата заказа])

Прочие интервальные коды :

yyyy (Год), q (Квартал 3), Год), d (День), w (День недели), ww (Неделя),
h (Час), n (Минута) и s (Секунда).

 


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

Возможно, вы знакомы с некоторыми функциями, особенно если вы пользователь Excel, например Len , Trim , Left , Right , Round , Choose и другие.

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