Format 函數

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

會傳回一個 Variant (String),其中包含一個依據格式化條件運算式中的指示而加以格式化的運算式。

警告 這個功能的使用上有問題。 某些曆年中的最後一個星期一可以被歸還為第53週,而實際上應該是第1週。 欲了解更多資訊及解決方法,請參閱 格式或日期部分功能可能會回傳錯誤的年度最後一個星期一的週數

請參考一些範例

語法

節目形式 ( *表達 式 [, 格式 ] [, 第一週 ] [, 第一週 ] )

Format 函式語法包含以下參數:

引數 描述
expression 必要。 任何有效的表達方式。
節目形式 可省略。 一個有效的命名或使用者定義格式表達式。
週第一天 可省略。 一個固定的恆定,標示著一週的第一天。
學年第一週 可省略。 一個標示新年第一週的常數。

    

設定

格式參數可依表達式參數的資料型態使用多種設定。 請參閱下表中列出的文章,以獲得更多關於有效格式表達式的資訊。

對於使用此資料型態的表達式...... 詳見相關文章
任何類型 Format 屬性
日期/時間 設定日期和時間欄位的格式
數值 格式化一個數字或貨幣欄位
文字與備忘錄 格式化文字欄位
是/否 Format 屬性 - 是/否資料類型

    

「第一天」論證的設定如下:

恆定 描述
vbUseSystem 0 使用 NLS API 設定。
VbSunday 1 星期天 (預設)
VB星期一 2 星期一
vb星期二 3 星期二
vb星期三 4 星期三
vb星期四 5 星期四
vb星期五 6 星期五
vb星期六 7 星期六

    

第一週論證的設定如下:

恆定 描述
vbUseSystem 0 使用 NLS API 設定。
vbFirst1月1日 1 從1月1日 (預設) 的那週開始。
vb第一四天 2 從一年中至少有四天的第一週開始。
vb第一週完整週 3 從今年的第一個完整週開始。

    

註解

格式 照做吧
數字 使用預先定義的命名數字格式,或建立使用者自訂的數字格式。
日期與時間 使用預先定義的命名日期/時間格式,或建立使用者自訂的日期/時間格式。
日期與時間序號 請使用日期與時間格式或數字格式。
弦樂 建立你自己定義的字串格式。

    

如果你嘗試格式化數字但未指定 格式格式 功能會提供類似 Str 功能的功能,儘管它是國際通用的。 然而,使用 Format 格式化為字串的正數不會包含保留給值號的前置空格;以 Str 轉換的學生保留前方格子。

如果你要格式化非本地化的數字字串,應該使用使用者自訂的數字格式,以確保你能得到想要的視覺效果。

注意

Calendar 屬性設定為公曆且格式指定日期格式,則所提供的表達式必須為公曆。 若 Visual Basic Calendar 屬性設定為 Hijri,則所提供的表達式必須為 Hijri。

若曆法為格里曆, 格式表達符號 的意義不變。 如果曆法是伊斯蘭曆,所有日期格式符號 (例如 dddd、mmmm、yyyy) 意義相同,但適用於伊斯蘭曆。 格式符號仍保留英文;產生文字顯示 (的符號,例如AM和PM,) 顯示與該符號相關的英文或阿拉伯) 字串 (。 當曆法為伊斯蘭曆時,某些符號的範圍會改變。

象徵 分布範圍
d 1-30
dd 1-30
ww 1-51
mmm 顯示完整的月份名稱 (希吉拉月名) 無縮寫。
y 1-355
yyyy 100-9666

範例

在表達式中使用格式化函式 你可以在能用表達式的地方使用 格式 。 例如,你可以在查詢中作為欄位別名的一部分使用它,或在表單或報告的文字框中使用控制 來源 屬性。 以下範例展示了你可以在報表的 Filter 屬性中使用的表達式,用來限制輸出到上一週的紀錄。

格式 ([日期],“ww”) =格式 (現在 () ,“ww”) -1

在此範例中,報告的記錄來源有一個名為日期的欄位,包含每個特定記錄被修改的日期,並用於報告中。 執行報告時,結果會過濾,只顯示日期 (欄位中 Format ([Date],“ww”) ) 的週數等於前一週 (格式 (Now () ,“ww”) -1) 。

在 VBA 程式碼中使用格式功能 

注意

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

此範例展示了 Format 函式的各種用途,透過命名格式與使用者自訂格式來格式化數值。 對於日期分隔符 (/) 、時間分隔符 (:) ,以及 AM/PM 字面值,系統實際顯示的格式化輸出取決於執行程式碼的電腦的區域設定。 當開發環境中顯示時間與日期時,會使用程式碼區域的短時間格式與短日期格式。 當以執行中的程式碼顯示時,系統區域會使用短時間格式和短日期格式,這可能與程式碼區域不同。 此例假設為美國英語地區。

MyTimeMyDate 以目前系統的短時間設定和短日期設定在開發環境中顯示。

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 情況,然後根據結果回傳相應的值。 例如,你可以在帶有 Format 函式的表達式中使用 IIf 函數,例如如下:

varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))

這個變更只適用於使用 Format 函式來格式化字串時,取決於它是零長度字串還是 Null 值。 其他與 Format 功能相關的格式表達式仍維持先前版本的運作方式。

如果你將資料庫從 Microsoft Access 2.0 及更早版本轉換到 Microsoft Access 2002 或更新版本,必須針對 Null 情況分別更改程式碼來測試。

字串函數及其使用方法