會傳回 Variant (String) ,其中包含根據格式表達式中所包含之指示所設定格式的 運算式 。
警告 使用此函數時發生問題。 某些行事歷年份中的最後一個星期一可以傳回為第 53 周,而應為第 1 周。 如需詳細資訊和因應措施,請參閱 Format 或 DatePart 函數可能會傳回年份中最後一個星期一的周數錯誤。 |
語法
format ( expression [, format ] [, firstdayofweek ] [, firstweekofyear ] )
Format 函數語法具有下列自變數:
引數 |
描述 |
expression |
必要。 任何有效的表達式。 |
格式 |
選擇性。 有效的具名或使用者定義格式表達式。 |
firstdayofweek |
選擇性。 指定一周中第一天的 常數 。 |
firstweekofyear |
選擇性。 這是指定一年中第一周的常數。 |
設定
format 自變數 可以使用各種設定,視 運算式 自變數的數據類型而定。 如需有效格式表達式的詳細資訊,請參閱下表中所列的文章。
對於使用此資料類型的運算式... |
請參閱這篇文章 |
任何類型 |
|
日期/時間 |
|
數值 |
|
簡訊和備忘 |
|
是/否 |
firstdayofweek 自變數具有下列設定:
常數 |
值 |
描述 |
vbUseSystem |
0 |
使用 NLS API 設定。 |
VbSunday |
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 函數類似,但卻是國際通用的。 不過 ,使用 [ 格式] 格式化為字串的正數不包含保留值符號的前置空格;那些使用 Str 轉換的使用者會保留前置空格。
如果您要設定非本地化數值字串的格式,您應該使用使用者定義的數值格式,以確保獲得所需的外觀。
附註: 如果 [ 行事曆 ] 屬性設定為公曆,且 格式 指定日期格式,則所提供的 表達式 必須為公曆。 如果 Visual Basic Calendar 屬性設定為 Hijri,則所提供的 表達式 必須是 Hijri。
如果行事曆是公曆, 則表達 式符號格式的含義會保持不變。 如果行事曆是回歷,則所有日期格式符號 (例如 dddd、mmmm、yyyy) 具有相同的意義,但適用於 Hijri 行事曆。 格式符號仍會以英文顯示;產生文字顯示 (例如AM和PM) 顯示與該符號相關聯之英文或阿拉伯文) (字串。 當行事曆為回歷時,特定符號的範圍就會變更。
符號 |
Range |
d |
1-30 |
dd |
1-30 |
ww |
1-51 |
mmm |
顯示完整月份名稱 (回歷月名稱沒有縮寫) 。 |
y |
1-355 |
yyyy |
100-9666 |
範例
在表達式中使用 Format 函數 您可以在任何可以使用表示式的地方使用 [格式 ]。 例如,您可以在查詢中使用它做為字段別名的一部分,或在窗體或報表上文本框的 [ 控件來源 ] 屬性中使用。 下列範例顯示您可能會在報表的 Filter 屬性中使用的運算式,以將輸出限制為上周的記錄。
Format ([Date],“ww”) =Format (Now () ,“ww”) -1
在此範例中,報表的記錄來源有一個名為 [日期] 的欄位,其中包含每筆特定記錄的修改日期,以及用於報表的日期。 當您執行報表時,其結果會被篩選成只顯示 [日期] 字段中該值的星期 ([格式] ([日期],“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 案例。