Возвращает значение типа Variant (String), которое содержит выражение, отформатированное в соответствии с указаниями, содержащимися в выражении формата.
Внимание! Существует проблема с использованием этой функции. Последний понедельник в некоторых календарных годах может быть возвращен как неделя 53, когда это должна быть неделя 1. Дополнительные сведения и обходной путь см. в статье Функции формат или DatePart могут возвращать неправильный номер недели для последнего понедельника в году. |
Синтаксис
Format( выражение [, формат ] [, первый_день_недели ] [, первая_неделя_года ] )
Функция Format имеет следующие аргументы:
Аргумент |
Описание |
выражение |
Обязательный аргумент. Любое допустимое выражение. |
формат |
Необязательный аргумент. Допустимое именованное или определяемое пользователем выражение формата. |
первый_день_недели |
Необязательный аргумент. Константа, задающая первый день недели. |
первая_неделя_года |
Необязательный аргумент. Константа, задающая первую неделю года. |
Параметры
Аргумент format может использовать различные параметры в зависимости от типа данных аргумента выражения . Дополнительные сведения см. в статьях, указанных в таблице ниже.
Тип данных |
Статья |
Любой тип |
|
Дата и время |
|
Число |
|
Текст и Memo |
|
Логический |
Аргумент первый_день_недели может принимать следующие значения:
Константа |
Значение |
Описание |
vbUseSystem |
0 |
Используются параметры API NLS. |
VbSunday |
1 |
Воскресенье (по умолчанию) |
vbMonday |
2 |
Понедельник |
vbTuesday |
3 |
Вторник |
vbWednesday |
4 |
Среда |
vbThursday |
5 |
Четверг |
vbFriday |
6 |
Пятница |
vbSaturday |
7 |
Суббота |
Аргумент первая_неделя_года может принимать следующие значения:
Константа |
Значение |
Описание |
vbUseSystem |
0 |
Используются параметры API NLS. |
vbFirstJan1 |
1 |
Начинается с недели, на которую приходится 1 января (по умолчанию). |
vbFirstFourDays |
2 |
Первой неделей считается та, которая содержит хотя бы четыре дня нового года. |
vbFirstFullWeek |
3 |
Первой неделей считается первая полная неделя года. |
Замечания
Чтобы отформатировать |
Сделайте следующее |
Числа |
Используйте стандартные именованные числовые форматы или создайте пользовательские числовые форматы. |
Значения даты и времени |
Используйте стандартные именованные форматы даты и времени или создайте пользовательские форматы даты и времени. |
Серийные номера даты и времени |
Используйте форматы даты и времени или числовые форматы. |
Строки |
Создайте пользовательские форматы строк. |
Если вы попытаетесь отформатировать число без задания формата, функция Format будет работать аналогично функции Str, хотя и с поддержкой международных форматов. Однако положительные числа, отформатированные как строки с использованием функции Format, не будут включать начальный пробел, зарезервированный для знака значения; с другой стороны, в случае преобразования с помощью функции Str начальный пробел сохранится.
При форматировании нелокализованных числовых строк следует использовать определяемый пользователем числовой формат, чтобы обеспечить получение желаемых результатов.
Примечание: Если для свойства Calendar задано значение Gregorian, а для аргумента формат указано форматирование даты, предоставленное выражение должно иметь тип Gregorian. Если для свойства Calendar в Visual Basic задано значение Hijri, выражение должно иметь тип Hijri.
Если используется григорианский календарь, значение символов выражения формат не изменяется. Если используется календарь Хиджра, все символы формата даты (например, dddd, mmmm, yyyy) имеют то же значение, но применяются к календарю Хиджра. Символы формата остаются английскими; символы, отображаемые в текстовом виде (например, AM и PM), выводят строку (на английском или арабском языке), связанную с этим символом. Диапазон некоторых символов при использовании календаря Хиджра изменяется.
Символ |
Диапазон |
d |
1–30 |
dd |
1–30 |
ww |
1–51 |
mmm |
Отображает полное название месяца (у названий месяцев Хиджра нет сокращений). |
y |
1–355 |
yyyy |
100–9666 |
Примеры
Использование функции Format в выражении. Функцию Format можно использовать в любых выражениях. Можно, например, использовать ее в запросе в виде части псевдонима поля или в свойстве Данные текстового поля в форме или отчете. Ниже представлен пример выражения, которое можно использовать в свойстве отчета Фильтр, чтобы вывести только записи, относящиеся к прошлой неделе.
Format([Дата],"ww")=Format(Now(),"ww")-1
В этом примере в источнике записей отчета есть поле "Дата", содержащее дату изменения каждой конкретной записи и использующееся в отчете. Во время выполнения отчета результаты фильтруются и отображаются только те записи, в которых значение недели в поле "Дата" (Format([Дата],"ww")) равно прошлой неделе (Format(Now(),"ww")-1).
Использование функции Format в коде VBA
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В данном примере показаны различные варианты использования функции Format для форматирования значений с помощью предварительно заданных форматов и форматов, определенных пользователем. Для разделителя даты (/), разделителя времени (:) и литералов AM/ PM фактические отформатированные выходные данные, отображаемые системой, зависят от ее региональных параметров. В среде разработки для отображения времени и даты используется краткий формат времени и даты, заданный в региональных параметрах программы. При отображении в работающей программе применяется краткий формат даты и времени из региональных параметров системы, который может отличаться от региональных параметров программы. В этом примере используется локаль "Английский (США)".
MyTime и MyDate отображаются в среде разработки с использованием текущих системных параметров для краткого формата времени и даты.
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23# MyDate = #January 27, 1993# ' Returns current system time in the system-defined long time format. MyStr = Format(Time, "Long Time") ' Returns current system date in the system-defined long date format. MyStr = Format(Date, "Long Date") MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23". MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM". MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday, ' Jan 27 1993". ' If format is not supplied, a string is returned. MyStr = Format(23) ' Returns "23". ' User-defined formats. MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40". MyStr = Format(334.9, "###0.00") ' Returns "334.90". MyStr = Format(5, "0.00%") ' Returns "500.00%". MyStr = Format("HELLO", "<") ' Returns "hello". MyStr = Format("This is it", ">") ' Returns "THIS IS IT".
Использование функции Format с пустыми строками
В Microsoft Access версии 2.0 и более ранних можно использовать функцию Формат , чтобы вернуть одно значение для пустая строка, а другое — для значения. Например, можно использовать выражение формата, например следующее, с функцией Format , чтобы вернуть соответствующее строковое значение из кода:
Dim varX As Variant
Dim varStrX As Variant ' Assign some value to varStrX and pass to Format function. varX = Format(varStrX, "@;ZLS;Null")
В Microsoft Access 97 и более поздних версиях необходимо отдельно проверить, не равно ли значение Null, а затем вернуть соответствующее значение с учетом результата. Например, можно использовать функцию IIf в выражении с функцией Format:
varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))
Данное изменение применимо только тогда, когда функция Format используется для форматирования строк в зависимости от того, пустая ли это строка или строка со значением Null. Другие выражения форматирования, используемые с функцией Format, действуют так же, как в предыдущих версиях.
При преобразовании базы данных из Microsoft Access 2.0 или более ранней версии в Microsoft Access 2002 или более поздней версии необходимо изменить текст программы так, чтобы проверка для случая Null выполнялась отдельно.