Format 函数

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

返回一个 Variant (String) 值,其中包含根据格式表达式中所包含的指令设置格式的表达式。

警告 使用此函数时存在问题。 某些日历年的最后一个星期一可以返回为第 53 周,而该周应为第 1 周。 有关详细信息和解决方法,请参阅 Format 或 DatePart 函数可能返回错误的年份中上周一的周数

查看一些示例

语法

设置 ( * 格式表达式 [, format ] [, firstdayofweek ] [, firstweekofyear ] )

Format 函数语法具有以下参数:

参数 说明
expression 必需。 任何有效的表达式。
格式 可选。 有效的命名或用户定义的格式表达式。
firstdayofweek 可选。 一个指定一周的第一天的常量。
firstweekofyear 可选。 一个指定一年的第一周的常量。

    

“设置”

format 参数可以使用各种设置,具体取决于表达式参数的数据类型。 有关有效格式表达式的详细信息,请参阅下表中列出的文章。

对于使用此数据类型的表达式... 请参阅文章
任何类型 Format 属性
日期/时间 设置日期和时间字段的格式
数字 设置数字或货币字段的格式
文本和备注 设置文本字段的格式
是/否 Format 属性 - Yes/No 数据类型

    

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 属性设置为公历,并且 format 指定日期格式,则提供的表达式必须为公历表达式。 如果 Visual Basic Calendar 属性设置为 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 文本,系统显示的实际格式化输出取决于运行代码的计算机的区域设置。 在开发环境中显示时间和日期时,将使用代码区域设置的短时间格式和短日期格式。 通过运行代码显示时,将使用系统区域设置的短时间格式和短日期格式,这可能不同于代码区域设置。 对于此示例,假定使用美国英语区域设置。

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".

      

对零长度字符串使用 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 情况。

字符串函数以及如何使用它们