會傳回一個 Variant (String),其中包含一個依據格式化條件運算式中的指示而加以格式化的運算式。
| 警告 使用這個函數時發生問題。 某些日曆年中的最後一個星期一可以傳回為第 53 週,而該週應該是第 1 週。 如需詳細資訊和因應措施,請參閱 Format 或 DatePart 函數可能會傳回一年中最後一個星期一的錯誤週數。 |
|---|
語法
格式 ( *運算式 [, 格式 ] [, firstdayofweek ] [, firstweekofyear ] )
Format 函數語法具有下列引數:
| 引數 | 描述 |
|---|---|
| expression | 必要。 任何有效的運算式。 |
| 格式 | 可省略。 有效的具名或使用者定義的格式運算式。 |
| firstdayofweek | 可省略。 指定一週第一天的常數。 |
| firstweekofyear | 可省略。 指定一年第一週的常數。 |
設定
format 引數 可以使用多種設定,視 運算式 引數的資料類型而定。 如需有效格式運算式的詳細資訊,請參閱下表中列出的文章。
| 針對使用此資料類型的運算式... | 請參閱文章 |
|---|---|
| 任何類型 | Format 屬性 |
| 日期/時間 | 設定日期和時間欄位的格式 |
| 數值 | 格式化數值或貨幣欄位 |
| 文字和備忘錄 | 格式化文字欄位 |
| 是/否 | Format 屬性 - 是/否資料類型 |
firstdayofweek 引數具有下列設定:
| 常數 | 值 | 描述 |
|---|---|---|
| vbUseSystem | 0 | 使用 NLS API 設定。 |
| VB星期日 | 1 | 星期日 (預設) |
| vbMonday | 2 | 星期一 |
| vbTuesday | 3 | 星期二 |
| vbWednesday | 4 | 星期三 |
| vbThursday | 5 | 星期四 |
| vbFriday | 6 | 星期五 |
| vbSaturday | 7 | 星期六 |
firstweekofyear 引數具有下列設定:
| 常數 | 值 | 描述 |
|---|---|---|
| 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) 顯示與該符號相關聯 (英文或阿拉伯文) 字串。 當日曆是回曆時,某些符號的範圍會發生變化。
| 符號 | 範圍 |
|---|---|
| d | 1-30 |
| dd | 1-30 |
| ww | 1-51 |
| mmm | 顯示完整的月份名稱 (回曆月份名稱沒有縮寫) 。 |
| y | 1-355 |
| yyyy | 100-9666 |
範例
在運算式中使用 Format 函數 您可以在任何可以使用運算式的位置使用 [格式 ]。 例如,您可以在查詢中做為欄位別名的一部分,或在表單或報表上文字方塊的 [ 控制項來源 ] 屬性中使用它。 下列範例顯示您可以在報表的 Filter 屬性中使用的運算式,以將輸出限制為上週的記錄。
格式設定 ([日期],“ww”) =立即設定 (格式 () ,“ww”) -1
在此範例中,報表的記錄來源有一個名為 [日期] 的欄位,其中包含修改每筆特定記錄的日期,以及用於報表的日期。 當您執行報表時,系統會篩選報表結果,以僅顯示 [日期] 欄位值的週 (格式 ([Date],“ww”) ) 等於 [立即格式 (化] () ,“ww”) -1) (前一週的記錄。
在 VBA 程式碼中使用 Format 函數
注意
下列範例示範如何在 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")
在 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 情況個別測試。