會 (字串) ,其中包含 運算式格式依據格式運算式中的指示格式化的字串。

警告    使用此函數時,有一個問題。 某些日曆年度中的最後一個星期一可以當第 53 周當做第 1 周時退回。 有關詳細資訊和解決方法,請參閱 Format 或 DatePart 函數可能會針對年份的最後一個星期一,退回 錯誤的周數

查看一些範例

語法

format ( expression [, format ] [firstdayofweek ] [ , firstweekofyear] )

Format 函數語法具有這些引數:

引數

描述

expression

必要。 任何有效的運算式。

格式

選用。 有效的命名或使用者定義格式運算式。

firstdayofweek

選用。 指定 常數 日的第一天。

firstweekofyear

選用。 指定一年的第一周的常數。


設定

格式 變數可以依據運算式引數的資料類型,使用各種不同的 設定 。 請參閱下表中列出的文章,以瞭解有關有效格式運算式的資訊。

針對使用此資料類型的運算式...

請參閱文章

任何類型

Format 屬性

日期/時間

設定日期和時間欄位的格式

數值

格式化數位或貨幣欄位

文字和備忘

格式化文字欄位

是/否

Format 屬性 - 是/否資料類型


firstdayofweek 自變數具有以下設定:

常數

描述

vbUseSystem

0

使用 NLS API 設定。

VbS本

1

星期日 (預設)

vbMonday

2

星期一

vbTuesday

3

星期二

vbWednesday

4

星期三

vbThursday

5

星期四

vbFriday

6

星期五

vbSaturday

7

星期六


一weekofyear 自 變數具有以下設定:

常數

描述

vbUseSystem

0

使用 NLS API 設定。

vbFirstJan1

1

從預設為 1 月 1 日 (開始) 。

vbFirstFourDays

2

從一年中至少有四天的第一周開始。

vbFirstFullWeek

3

從一年的第一個完整周開始。


註解

若要格式化

請執行此動作

數字

使用預先定義的命名數值格式,或建立使用者定義的數值格式。

日期及時間

使用預先定義的命名日期/時間格式,或建立使用者定義的日期/時間格式。

日期及時間序列值

使用日期和時間格式或數值格式。

字串

建立您自己的使用者定義字串格式。


如果您嘗試格式化數位而不指定格式,Format提供的功能與Str函數類似,雖然這是國際所瞭解的功能。 不過,使用 Format 格式化為字串的正數不包含值符號所保留的前導空格;那些使用 Str 轉換的 空格會保留前導空格。

如果您要格式化非當地語系化的數值字串,您應使用使用者定義的數值格式,以確保獲得您想要的外觀。

附註: 如果 Calendar 屬性設定為西曆,且 格式指定 日期格式設定,則提供的 運算式 必須是西曆。 如果 Visual Basic Calendar 屬性 設定為 Hijri,則提供的 運算式必須是 Hijri。

如果日曆是西曆,則格式 運算式 符號的意義不會改變。 如果日曆是回曆,則所有日期格式符號 (例如 dddd、mmmm、yyyy) 具有相同意義,但適用于回曆。 格式符號會保留為英文;導致文字顯示符號的符號 (例如 AM 和 PM) 會顯示與該符號 (英文或阿拉伯文) 字串。 當日曆為回曆時,特定符號的範圍會變更。

符號

Range

d

1-30

dd

1-30

ww

1-51

mmm

顯示完整月份名稱 (回曆月份名稱沒有縮寫) 。

y

1-355

yyyy

100-9666

範例

在運算式中使用 Format 函數    您可以在任何 可以使用運算式 的地方使用格式。 例如,您可以在查詢中使用它做為欄位別名的一部分,或表單或報表上文字方塊的 Control Source 屬性。 下列範例顯示您可能會在報表的 Filter 屬性中使用的運算式,以將輸出限制為前一周的記錄。

格式化 ([Date],"ww") =format (now () ,"ww") -1

在此範例中,報表的記錄來源有一個名為 Date 的欄位,該欄位包含每個特定記錄修改的日期,以及用於報表的日期。 當您執行報表時,其結果會經過篩選,只顯示 [日期] 欄位中值的周 (格式 ([Date],"ww") ) 等於上周的記錄 (格式 (Now () ,"ww") -1) 。

在 VBA 程式碼中使用 Format 函數    

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

此範例顯示 Format 函數的各種用法,可同時使用命名格式和使用者定義格式來格式化值。 對於日期分隔符號 (/) 、時間分隔符號 (:) 和 AM/PM 文字,系統顯示的實際格式設定輸出取決於執行程式碼之電腦的地區設定。 在開發環境中顯示時間和日期時,會使用簡短時間格式和簡短日期格式的代碼地區設定。 執行程式碼時,系統會使用簡短的時間格式和簡短的系統地區設置日期格式,這可能與程式碼地區設置不同。 在此範例中,假設為美國英文地區。

MyTime MyDate 時間設定和簡短日期設定, 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")

在 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 案例。

字串函數及其使用方法

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Office Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×