Applies ToMicrosoft 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 属性设置为 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 文本,系统显示的实际格式化输出取决于运行代码的计算机的区域设置。 在开发环境中显示时间和日期时,将使用代码区域设置的短时间格式和短日期格式。 通过运行代码显示时,将使用系统区域设置的短时间格式和短日期格式,这可能不同于代码区域设置。 对于此示例,假定使用美国英语区域设置。

使用当前系统短时间设置和短日期设置在开发环境中显示MyTimeMyDate

Dim MyTime, MyDate, MyStrMyTime = #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 VariantDim 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 情况。

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

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。