Повертає значення типу Variant (String), яке містить вираз, відформатований відповідно до інструкцій, які містяться у виразі форматування.
Попередження Виникла проблема з використанням цієї функції. Останній понеділок у деякі календарні роки можна повернути як тиждень 53, коли це буде тиждень 1. Докладні відомості та способи вирішення див. в статті Функції Format або DatePart можуть повертати неправильний номер тижня за минулий понеділок року. |
Синтаксис
Format( expression [, format ] [, firstdayofweek ] [, firstweekofyear ] )
Синтаксис функції Format має такі аргументи:
Аргумент |
Опис |
expression |
Обов’язковий аргумент. Будь-який припустимий вираз. |
format |
Необов’язковий аргумент. Припустимий іменований або визначений користувачем вираз форматування. |
firstdayofweek |
Необов’язковий аргумент. Константа, яка задає перший день тижня. |
firstweekofyear |
Необов’язковий аргумент. Константа, яка задає перший день року. |
Параметри
Аргумент format може використовувати різні параметри залежно від типу даних аргументу виразу . Докладні відомості про припустимі вирази формату див. в наведеній нижче таблиці.
Вирази, для яких використовується цей тип даних… |
Стаття |
Будь-який тип |
|
Дата або час |
|
Числовий |
|
Текст і Memo |
|
Так/Ні |
Аргумент firstdayofweek має такі параметри:
Константа |
Значення |
Опис |
vbUseSystem |
0 |
Використовуйте параметр API NLS. |
VbSunday |
1 |
Неділя (за замовчуванням) |
vbMonday |
2 |
Понеділок |
vbTuesday |
3 |
Вівторок |
vbWednesday |
4 |
Середа |
vbThursday |
5 |
Четвер |
vbFriday |
6 |
П’ятниця |
vbSaturday |
7 |
Субота |
Аргумент firstweekofyear має такі параметри:
Константа |
Значення |
Опис |
vbUseSystem |
0 |
Використовуйте параметр API NLS. |
vbFirstJan1 |
1 |
Почати з тижня, до якого належить 1 січня (за замовчуванням). |
vbFirstFourDays |
2 |
Почати з першого тижня, який має принаймні чотири дні року. |
vbFirstFullWeek |
3 |
Почати з першого повного тижня року. |
Примітки
Об’єкт форматування |
Дія |
Числа |
Використовуйте попередньо визначені іменовані числові формати або створіть числові формати користувача. |
Дати й час |
Використовуйте попередньо визначені іменовані формати дати й часу або створіть формати дати й часу користувача. |
Порядкові номери дати й часу |
Використовуйте формати дати й часу або числові формати. |
Рядки |
Створіть власні користувацькі формати рядка. |
Якщо спробувати відформатувати число, не вказавши аргумент format, функція Format працюватиме подібно до функції Str, але з урахуванням локальних стандартів. Однак додатні числа, відформатовані як рядки за допомогою функції Format, не включають перший пробіл, зарезервований для знака; а додатні числа, перетворені за допомогою функції Str, зберігають перший пробіл.
Форматуючи нелокалізований числовий рядок, потрібно використовувати користувацький числовий формат, щоб надати рядку потрібного вигляду.
Примітка.: Якщо параметр властивості Calendar має значення "Gregorian" і аргумент format указує форматування дати, то наданий аргумент expression має відповідати григоріанському календарю. Якщо параметр властивості Calendar Visual Basic має значення "Hijri", то наданий аргумент expression має відповідати календарю хіджри.
Якщо календар григоріанський, значення символів виразу format не змінюється. Якщо календар хіджри, усі символи формату дати (наприклад, дддд, мммм, рррр) мають однакове значення, але стосуються календаря хіджри. Символи формату залишаються англійською мовою; символи, які призводять до відображення тексту (наприклад, AM і PM), відображають рядок (англійською або арабською мовою), пов’язаний із цим символом. Діапазон певних символів змінюється, коли використовується календар хіджри.
Символ |
Діапазон |
d |
1–30 |
dd |
1–30 |
ww |
1–51 |
mmm |
Повні назви місяців (назви місяців хіджри не скорочуються). |
y |
1–355 |
yyyy |
100–9666 |
Приклади
Використання функції Format у виразі Функцію Format можна використовувати будь-де, де можна використовувати вирази. Наприклад, її можна використати в запиті у рамках псевдоніма поля, або у властивості Control Source текстового поля у формі чи звіті. У наведеному нижче прикладі показано вираз, який можна використати у властивості Filter звіту, щоб обмежити вивід до записів із попереднього тижня.
Format([Date],"ww")=Format(Now(),"ww")-1
У цьому прикладі джерело записів звіту має поле з іменем "Date", що містить дату змінення кожного конкретного запису та використовується у звіті. Коли ви запускаєте звіт, його результати фільтруються, щоб відобразити тільки ті записи, у яких тиждень для значення в полі "Date" (Format([Date],"ww")) дорівнює попередньому тижню (Format(Now(),"ww")-1).
Використання функції Format у коді VBA
Примітка.: У прикладах нижче показано використання цієї функції в модулі Visual Basic for Applications (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 можна повернути одне значення для рядок нульової довжини, а інше – для значення. Наприклад, щоб повернути відповідне значення рядка з коду, можна використати вираз формату, наприклад наведений нижче, з функцією 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-значення.