返回一个 Variant (String) ,其中包含根据格式表达式中包含的说明设置格式的 表达式 。
警告 使用此函数时存在问题。 某些日历年的最后一个星期一可以返回为第 53 周,而该周应为第 1 周。 有关详细信息和解决方法,请参阅 Format 或 DatePart 函数可能返回错误的年份中上周一的周数。 |
语法
格式化 ( 表达式 [, 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 函数的功能,尽管它在国际上是众所周知的。 但是,使用 Format 格式化为字符串的正数不包括为值符号保留的前导空格;使用 Str 转换的保留前导空间。
如果要设置非本地化数字字符串的格式,则应使用用户定义的数字格式,以确保获得所需的外观。
注意: 如果 Calendar 属性设置为 Gregorian 且 format 指定日期格式,则提供的 表达式 必须为 Gregorian。 如果 Visual Basic 日历 属性设置为 Hijri,则提供的 表达式 必须为 Hijri。
如果日历为公历,则 格式 表达式符号的含义保持不变。 如果日历为 Hijri,则所有日期格式符号 (例如 dddd、mmmm、yyyy) 具有相同的含义,但适用于 Hijri 日历。 格式符号仍为英文;导致文本的符号显示 (例如,AM 和 PM) 显示与该符号关联的字符串 (英语或阿拉伯语) 。 当日历为 Hijri 时,某些符号的范围会更改。
符号 |
Range |
d |
1-30 |
dd |
1-30 |
ww |
1-51 |
mmm |
显示完整的月份名称 (hijri 月份名称没有) 缩写。 |
y |
1-355 |
yyyy |
100-9666 |
示例
在表达式中使用 Format 函数 可以在使用表达式的任何位置使用 Format 。 例如,可以在查询中将其用作字段别名的一部分,或者在窗体或报表上的文本框的 “控件源” 属性中使用它。 以下示例演示了可在报表的 Filter 属性中使用的表达式,以将输出限制为前一周的记录。
Format ([Date],“ww”) =Format (Now () ,“ww”) -1
在此示例中,报表的记录源有一个名为 Date 的字段,该字段包含修改每个特定记录的日期,并在报表上使用该日期。 运行报表时,将筛选其结果,仅显示日期字段中值 (格式 ([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".
对零长度字符串使用 Format
在 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 情况。