Връща стойност от тип Variant (String), съдържаща израз, форматирана съгласно инструкциите, съдържащи се във форматен израз.
Предупреждение Има проблем с използването на тази функция. Последният понеделник в някои календарни години може да бъде върнат като седмица 53, когато трябва да бъде седмица 1. За повече информация и заобиколно решение вижте Функциите Format или DatePart могат да връщат грешен номер на седмица за последния понеделник в годината. |
Синтаксис
Format( израз [, формат ] [, първи ден от седмицата ] [, първа седмица от годината ] )
Синтаксисът на функцията Format има следните аргументи:
Аргумент |
Описание |
израз |
Задължително. Всеки валиден израз. |
формат |
Незадължително. Валиден наименуван или дефиниран от потребителя израз за формат. |
първи ден от седмицата |
Незадължително. константа, който указва първия ден от седмицата. |
първа седмица от годината |
Незадължително. Константа, която указва първата седмица от годината. |
Настройки
Аргументът "формат " може да използва различни настройки в зависимост от типа на данните на аргумента "израз ". Прегледайте статиите, изброени в таблицата по-долу, за повече информация относно валидните изрази във формат.
За изрази, които използват този тип данни... |
Вижте статията |
Всеки тип |
|
Дата/час |
|
Число |
|
Текст и паметна бележка |
|
Да/Не |
Първият аргумент от седмицата има следните настройки:
Константа |
Value |
Описание |
vbUseSystem |
0 |
Използвайте настройката за NLS API. |
VbSunday |
1 |
Неделя (по подразбиране) |
vbMonday |
2 |
Понеделник |
vbTuesday |
3 |
Вторник |
vbWednesday |
4 |
Сряда |
vbThursday |
5 |
Четвъртък |
vbFriday |
6 |
Петък |
vbSaturday |
7 |
Събота. |
Първият аргумент от годината има следните настройки:
Константа |
Value |
Описание |
vbUseSystem |
0 |
Използвайте настройката за NLS API. |
vbFirstJan1 |
1 |
Започнете със седмицата, в която се случва 1 януари (по подразбиране). |
vbFirstFourDays |
2 |
Започнете с първата седмица, която има поне четири дни в годината. |
vbFirstFullWeek |
3 |
Започнете с първата пълна седмица от годината. |
Забележки
За да форматирате |
Направете това |
цифри |
Използвайте предварително дефинирани наименувани числови формати или създайте дефинирани от потребителя числови формати. |
Дати и часове |
Използвайте предварително зададени формати за дата/час или създайте дефинирани от потребителя формати за дата/час. |
Поредни номера на дата и час |
Използвайте формати за дата и час или числови формати. |
Струни |
Създайте свои собствени дефинирани от потребителя формати на низове. |
Ако се опитате да форматирате число, без да зададете формат, форматът предоставя функционалност, подобна на функцията Str , въпреки че е международно известна. Обаче положителните числа, форматирани като низове с помощта на Формат , не включват водещ интервал, запазен за знака на стойността; конвертираните с помощта на Str запазват водещото пространство.
Ако форматирате нелоизиран числов низ, трябва да използвате дефиниран от потребителя числов формат, за да се уверите, че получавате желания от вас облик.
Забележка: Ако настройката на свойството Календар е Григориански и форматът задава форматиране на датата, предоставеният израз трябва да бъде григориански. Ако настройката на свойството Календар на Visual Basic е Хиджри, предоставеният израз трябва да бъде Хиджри.
Ако календарът е григориански, значението на символите за форматиране на изрази е непроменено. Ако календарът е Хиджри, всички символи за формат на датата (например дддд, мммм, гг) имат едно и също значение, но се прилагат към календара хиджри. Символите за форматиране остават на английски език; символите, които водят до показване на текст (например AM и PM), показват низа (английски или арабски), свързан с този символ. Диапазонът на определени символи се променя, когато календарът е Хиджри.
Символ |
"диапазон" |
d |
1-30 |
dd |
1-30 |
ww |
1-51 |
mmm |
Показва пълните имена на месеците (имената на месеците хиджри нямат съкращения). |
y |
1-355 |
yyyy |
100-9666 |
Примери
Използване на функцията Format в израз Можете да използвате Формат навсякъде, където можете да използвате изрази. Можете например да го използвате в заявка като част от псевдоним на поле или в свойството Източник за контролата на текстово поле във формуляр или отчет. Следващите примери показват израз, който може да използвате в свойството Filter на отчет, за да ограничите резултата до записите от предишната седмица.
Format([Дата];"ww")=Format(Now();"ww")-1
В този пример източникът на записи на отчета има поле с име "Дата", което съдържа датата, на която е променен всеки конкретен запис и което се използва в отчета. Когато изпълните отчета, резултатите от него се филтрират така, че да показват само записите, за които седмицата за стойността в полето "Дата" (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".
Използване на формат с низове с нулева дължина
В 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")
Във версии 97 и по-нови на Microsoft Access трябва да тествате отделно за случая Null , след което да върнете подходящата стойност въз основа на резултата. Например можете да използвате функцията IIf в израз с функцията Format , като например следното:
varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))
Тази промяна се прилага само когато използвате функцията Format , за да форматирате низ, зависим от това дали е низ с нулева дължина, или стойност Null. Другите изрази за форматиране, използвани с функцията Format , продължават да работят, както в предишните версии.
Ако преобразувате база данни от Microsoft Access версия 2.0 и по-стара версия в Microsoft Access 2002 или по-нова версия, трябва да промените кода, за да тествате отделно за случая Null.